These tasks are for you to get familiar with the IIO subsystem. You do not need to claim these via the Outreachy tasks page. For IIO related questions you can join #linux-iio IRC channel (server

Please email your solutions to amsfield22 at gmail dot com and daniel.baluta at gmail dot com. Your email should have the subject Task XX: Short task description

Experimenting with IIO subsystem

For this we will use two kernel modules found in drivers/iio/dummy:

Dummy modules compilation

You need to select the following config options:

Use the following commands for modules compilation:

Use the following commands for module loading:

Use the following command to create your dummy device under the configfs filesystem:

Task 01:

Task 02:

IIO event monitor

IIO event monitor is an user space example application which reads events from IIO layer and pretty prints the results. Implementation can be found in iio_event_monitor.c under tools/iio/. BR

Task 03:

Compile iio_event_monitor:

Task 04:

Read events using iio_event_monitor

Generic buffer

Task 05:

Create triggers using configfs interface.

Task 06:

Read samples from buffer generated by the iio_dummy module.

Coding Tasks

Note for all IIO Coding Tasks:

Task 1: Replace IIO_DEV_ATTR_* with IIO_CHAN_INFO_*

As the IIO subsystem evolves, attributes that were once privately defined become standard and hence a special global define is used. This kind of evolution means we can update existing drivers to use the new defines.

Review this recently submitted patch:

Note that aside from looking at the patch itself, you can find the email chatter about it in the linux-iio mailing list.

Find a driver in the IIO staging directory that has one or more IIO_DEV_ATTR* that can be updated to IIO_CHAN_INFO* attributes.

UPDATE: No instances remain in drivers/staging. If you have not created a patch for this yet, please look in drivers/iio.


Task 2: Use sparse for endianess verification

With this task you will learn about the endianness conversions.

See article here and here:

Use the following commands to check for endianness warnings in IIO code:

In order to get relevant results from sparse on IIO you need to select for building the corresponding modules.

You either run make menuconfig and manually go to Drivers -> IIO and select each driver with Y or M for build.

Or run make allyesconfig before running sparse command.

UPDATE: All instances in IIO have been patched or claimed.

If you're still interested in the topic, look elsewhere in staging drivers. (make allyesconfig C=2 CF="-DCHECK_ENDIAN" drivers/staging/) Those would not need to be 'claimed'.

KernelNewbies: IIO_tasks (last edited 2016-10-12 00:57:38 by or-67-232-77-201)