''Mentors:'' [http://kernelnewbies.org/OctavianPurdila Octavian Purdila], [http://kernelnewbies.org/DanielBaluta Daniel Baluta] = checkpatch.pl cleanups = Use `scripts/checkpatch.pl` to align code in `staging/drivers/iio` to Linux kernel coding style. * accel/ * status: '''clean''' - resolved by Tapasweni Pathak (irc: tapasweni) * adc/ * status: '''clean''' - resolved by Vaishali Thakkar (irc: vaishu) * addac/ * status: '''clean''' - resolved by Roxana Blaj (irc: roxana) * cdc/ * status: '''clean''' * Documentation/ * status: '''clean''' - resolved by Heena Sirwani (irc: heena) [one patch in review] * frequency/ * status: '''clean''' - resolved by Roxana Blaj (irc: roxana) * gyro/ * status: '''clean''' - resolved by Heena Sirwani (irc: heena) * impedance-analyzer/ * status: '''clean''' * light/ * status: '''clean''' - resolved by to Roberta Dobrescu (irc: roberta) [dt patch in review] * magnetometer/ * status: '''clean''' (there is one line over 80 chars but we won't fix it because it makes code harder to read) * meter/ * status: '''clean''' - resolved by Darshana Padmadas (irc: darshana) [one patch pending review] * resolver/ * status: '''clean''' - resolved by Roberta Dobrescu (irc: roberta) * trigger/ * status: '''clean''' - resolved by Darshana Padmadas (irc: darshana) A directory (e.g. `accel`) is considered clean in the context of checkpatch.pl if running the following commands results in no warnings or errors: * {{{scripts/checkpatch.pl -f drivers/staging/iio/accel/*.c}}} * {{{scripts/checkpatch.pl -f drivers/staging/iio/accel/*.h}}} * {{{scripts/checkpatch.pl -f drivers/staging/iio/accel/Kconfig}}} Please send us an email with the directory you want to work on. Don't forget to specify your full name and IRC handle. = Experimenting with IIO subsystem = For this we will use two kernel modules found in {{{drivers/staging/iio}}}: * {{{iio_dummy_evgen.ko}}} - generates ''fake'' events interrupts to be used by the {{{iio_dummy}}} example driver * implementation for this module is in {{{iio_dummy_evgen.c}}} * {{{iio_dummy.ko}}} - example IIO driver to demonstrate existing functionality * core implementation can be found in {{{iio_simple_dummy.c}}} * buffer functionality is implemented in {{{iio_simple_dummy_buffer.c}}} * events functionality is implemented in {{{iio_simple_dummy_events.c}}} == Dummy modules compilation == You need to select the following config options: * {{{CONFIG_IIO_DUMMY_EVGEN}}} - for building {{{iio_dummy_evgen}}} kernel module * {{{CONFIG_IIO_SIMPLE_DUMMY}}} - for building {{{iio_dummy}}} kernel module * {{{CONFIG_IIO_SIMPLE_DUMMY_EVENTS}}}, {{{CONFIG_IIO_SIMPLE_DUMMY_BUFFER}}} should be selected for events and buffer functionality. Use the following commands for modules compilation: * {{{$ make drivers/staging/iio/iio_dummy_evgen.ko}}} * {{{$ make drivers/staging/iio/iio_dummy.ko}}} Use the following commands for module loading: * {{{$ insmod iio_dummy_evgen.ko}}} * {{{$ insmod iio_dummy.ko}}} Task 01: * Show that the modules were successfully loaded . Send an email to mentors listed at the top of the page, with the output of the following commands * lsmod * ls -l /sys/bus/iio/devices/ * ls -l /sys/bus/iio/devices/iio:device0/ * ls -l /sys/bus/iio/devices/iio_evgen/ == IIO sysfs attributes == IIO sysfs attributes should all be documented in {{{Documentation/ABI/testing/sysfs-bus-iio}}}. Have a look at this file, with a focus on the following entries: * /sys/bus/iio/devices/iio:deviceX * /sys/bus/iio/devices/triggerX * /sys/bus/iio/devices/iio:deviceX/buffer * /sys/bus/iio/devices/iio:deviceX/events == 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 {{{iio/drivers/staging/iio/Documentation}}}. [[BR]] Task 02: * compile {{{iio_event_monitor.c}}} to obtain an executable called {{{iio_event_monitor}}}. Send an email with the command used for compilation to mentors listed at the top of the page.