[PATCH v9 0/5] Add initial configfs support for IIO

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This patchset introduces IIO software triggers, offers a way of configuring
them via configfs and adds the IIO hrtimer based interrupt source to be used
with software triggers.

The arhitecture is now split in 3 parts, to remove all IIO trigger specific
parts from IIO configfs core:

(1) IIO configfs - creates the root of the IIO configfs subsys.
(2) IIO software triggers - software trigger implementation, dynamically
	creating /config/iio/triggers group.
(3) IIO hrtimer trigger - is the first interrupt source for software triggers
        (with syfs to follow). Each trigger type can implement its own set of
        attributes.

Lockdep seems to be happy with the locking in configfs patch.

Changes since v8:
   * patch 1/5
	* dynamically allocate groups as suggested by Christoph
	* add kernel-doc documentation to the newly introduced functions
   * patch 2/5
	* better isolation, here we only create the root of the IIO configfs
	subys, and let the other modules (e.g software triggers) to create their
	group.
   * patch 3/5
	* dynamically create triggers/ group to better isolate the code
	* fixes 0-day build warnings and compilation errors.
   * patch 4/5
	* none
   * patch 5/5
	* none

Changes since v7:
   * patch 1/5
        * do not add dentry parameter for create_default_group, we can
          retrieve it from group.
        * call configfs_detach_prep before configfs_detach_group in
          configfs_unregister_group.
        * call link_group/unlink_group under su_mutex lock
        * take configfs_dirent_lock when calling configfs_dir_set_ready
  * patch 2/5
        * export iio_triggers_group, this will be later used by sw triggers
  * patch 3/5
        * make iio_sw_trigger part of industrialio core
        * fix compilation problem reported by Vladimir and Lars. Things didn't
        get well when having IIO_SW_TRIGGER enabled and IIO_CONFIGFS disabled.
        * use format string in config_item_set_name
        * make iio_unregister_sw_trigger_type return type void.
  * patch 4/5
        * none
  * patch 5/5
        * include a small trigger type sample example.

Changes since v6:
        * implemented Lars-Peter's idea (https://lkml.org/lkml/2015/5/13/302)
        to switch from /config/iio/triggers/hrtimer-instance1 to
        /config/iio/triggers/instance1.

Changes since v5: (after Lars comments)
        * the most important change is that we moved sampling_frequency attribute
        from configfs to trigger's directory in /sys.
        * couple of const added to strings
        * documentation to public API in sw_trigger.h
        * replace pr_err with WARN_ONCE in trigger_make_group to avoid spamming
        kernel log, but without leaving user clueless in case of errors.
        * we still need to decide if we get a real gain by adding min/max limits
        for sampling frequency in /config dir. Anyhow, this can be done in a later
        patch.
        * fix race in hrtimer_remove

Changes since v4:
        * patch 1/4
                - fixed "new line" nit in industrialio-sw-trigger.c
                - added license header in sw_trigger.h o
        * patch 2/4
                - none
        * patch 3/4
                - none
        * patch 4/4
                - removed "Further work" chapter in iio_configfs.txt

                - added configfs-iio file in Documentation/ABI/testing

Daniel Baluta (5):
  configfs: Allow dynamic group creation
  iio: core: Introduce IIO configfs support
  iio: core: Introduce IIO software triggers
  iio: trigger: Introduce IIO hrtimer based trigger
  iio: Documentation: Add IIO configfs documentation

 Documentation/ABI/testing/configfs-iio |  21 ++++
 Documentation/iio/iio_configfs.txt     |  93 +++++++++++++++
 drivers/iio/Kconfig                    |  16 +++
 drivers/iio/Makefile                   |   2 +
 drivers/iio/industrialio-configfs.c    |  50 ++++++++
 drivers/iio/industrialio-sw-trigger.c  | 206 +++++++++++++++++++++++++++++++++
 drivers/iio/trigger/Kconfig            |  10 ++
 drivers/iio/trigger/Makefile           |   2 +
 drivers/iio/trigger/iio-trig-hrtimer.c | 193 ++++++++++++++++++++++++++++++
 fs/configfs/dir.c                      | 102 ++++++++++++++++
 include/linux/configfs.h               |   8 ++
 include/linux/iio/sw_trigger.h         |  71 ++++++++++++
 12 files changed, 774 insertions(+)
 create mode 100644 Documentation/ABI/testing/configfs-iio
 create mode 100644 Documentation/iio/iio_configfs.txt
 create mode 100644 drivers/iio/industrialio-configfs.c
 create mode 100644 drivers/iio/industrialio-sw-trigger.c
 create mode 100644 drivers/iio/trigger/iio-trig-hrtimer.c
 create mode 100644 include/linux/iio/sw_trigger.h

-- 
1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux