879
Comment: add IIO cleanup small tasks
|
4253
iio: fix formatting
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
= IIO staging cleanup = |
|
Line 5: | Line 3: |
== checkpatch.pl cleanups == | = checkpatch.pl cleanups = |
Line 10: | Line 8: |
* status: not assigned | * status: '''clean''' - resolved by Tapasweni Pathak (irc: tapasweni) |
Line 12: | Line 10: |
* status: not assigned | * status: '''clean''' - resolved by Vaishali Thakkar (irc: vaishu) |
Line 14: | Line 12: |
* status: not assigned | * status: '''clean''' - resolved by Roxana Blaj (irc: roxana) |
Line 17: | Line 15: |
* Documentation/ * status: '''clean''' - resolved by Heena Sirwani (irc: heena) [one patch in review] |
|
Line 18: | Line 18: |
* status: not assigned | * status: '''clean''' - resolved by Roxana Blaj (irc: roxana) |
Line 20: | Line 20: |
* status: '''clean''' | * status: '''clean''' - resolved by Heena Sirwani (irc: heena) |
Line 24: | Line 24: |
* status: not assigned | * status: '''clean''' - resolved by to Roberta Dobrescu (irc: roberta) [dt patch in review] |
Line 26: | Line 26: |
* status: not assigned | * status: '''clean''' (there is one line over 80 chars but we won't fix it because it makes code harder to read) |
Line 28: | Line 28: |
* status: not assigned | * status: '''clean''' - resolved by Darshana Padmadas (irc: darshana) [one patch pending review] |
Line 30: | Line 30: |
* status: '''clean''' | * status: '''clean''' - resolved by Roberta Dobrescu (irc: roberta) |
Line 32: | Line 32: |
* status: not assigned | * status: '''clean''' - resolved by Darshana Padmadas (irc: darshana) |
Line 34: | Line 34: |
Please send us an email with the directory you want to work on. Please specify your full name and IRC handle. | 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. |
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.