Message ID | cover.1632884256.git.vilhelm.gray@gmail.com (mailing list archive) |
---|---|
Headers | show |
Series | Introduce the Counter character device interface | expand |
On Wed, 29 Sep 2021 12:15:57 +0900 William Breathitt Gray <vilhelm.gray@gmail.com> wrote: > Changes in v17: > - A couple minor improvements to documentation from review suggestions > - chrdev_lock redeclared as atomic_t; BITMAP was not necessary because > chrdev_lock is a single flag > - test_and_set_bit_lock(), clear_bit_unlock(), and clear_bit(), > replaced respectively with atomic_add_unless(), atomic_dec(), and > atomic_set() > - counter_comp_read_is_equal() and counter_comp_read_is_set() macros > implemented in order to properly test counter_comp structures' read > callback states > - counter_sysfs_add() call performed before counter_chrdev_add() call > in counter_register() in order to match unwinding sequence > - for-loop utilized in counter-example.c in order to simplify code > - counter-example.c returns 1 on error instead of -errno; errno may be > modified after a subsequent library call so we can't depend on it > > For convenience, this patchset is also available on my personal git > repo: https://gitlab.com/vilhelmgray/iio/-/tree/counter_chrdev_v17 > > A Counter character device interface is introduced that allows Counter > events and associated data to be read() by userspace; the > events_configure() and watch_validate() driver callbacks are introduced > to support Counter events; and IRQ support is added to the > 104-QUAD-8 driver, serving as an example of how to support the new > Counter events functionality. Applied to the togreg branch of iio.git and pushed out as testing for 0-day to see if we missed anything! I couldn't resist hitting lore.kernel.org for some archaeology on whether this broke records for a series on the IIO list (i.e. one I'd actually reviewed :) It has the dubious honour of being the only series to reach v17 that has been posted to linux-iio@vger.kernel.org as far as records go back. Peter Rosin's MUX series got to v15 and that seems to be the previous record holder joint with an mxs-lradc set from a while back. Perhaps not a record you wanted to get, but it shows impressive grit and determination! Jonathan > > William Breathitt Gray (9): > counter: Move counter enums to uapi header > counter: Add character device interface > docs: counter: Document character device interface > tools/counter: Create Counter tools > counter: Implement signalZ_action_component_id sysfs attribute > counter: Implement *_component_id sysfs attributes > counter: Implement events_queue_size sysfs attribute > counter: 104-quad-8: Replace mutex with spinlock > counter: 104-quad-8: Add IRQ support for the ACCES 104-QUAD-8 > > Documentation/ABI/testing/sysfs-bus-counter | 29 + > Documentation/driver-api/generic-counter.rst | 177 ++++-- > .../userspace-api/ioctl/ioctl-number.rst | 1 + > MAINTAINERS | 2 + > drivers/counter/104-quad-8.c | 256 ++++++-- > drivers/counter/Kconfig | 6 +- > drivers/counter/Makefile | 2 +- > drivers/counter/counter-chrdev.c | 578 ++++++++++++++++++ > drivers/counter/counter-chrdev.h | 14 + > drivers/counter/counter-core.c | 56 +- > drivers/counter/counter-sysfs.c | 123 +++- > include/linux/counter.h | 98 +-- > include/uapi/linux/counter.h | 154 +++++ > tools/Makefile | 13 +- > tools/counter/Build | 1 + > tools/counter/Makefile | 53 ++ > tools/counter/counter_example.c | 92 +++ > 17 files changed, 1509 insertions(+), 146 deletions(-) > create mode 100644 drivers/counter/counter-chrdev.c > create mode 100644 drivers/counter/counter-chrdev.h > create mode 100644 include/uapi/linux/counter.h > create mode 100644 tools/counter/Build > create mode 100644 tools/counter/Makefile > create mode 100644 tools/counter/counter_example.c > > > base-commit: a5ae0cfd53aaf031c2e9ba048281776fa67047c2