Changelog v2 -> v3: * added commit 'docs: ioctl-number.rst: reserve IIO subsystem ioctl() space' reserving 'i' 0x90-0x9F ioctls for IIO I did not see any conflicts with others (in the doc) - related to this, the new IIO_BUFFER_GET_FD_IOCTL is now at 'i' 0x91 * changed approach for creating sysfs buffer directories; - they are now created as groups on the IIO device; that also means that the groups array needs to be krealloc-ed and assign later in the registration - merged bufferX/ and scan_elementsX/ directories into a single bufferX/ directory - for legacy the buffer/ & scan_elements/ directories are kept; but they're groups objects have been moved on the iio_dev_opaque object - internally, the iio_dev_attr type is being extended to hold a reference for an IIO buffer; = this is great for scan_elements attributes = and for the rest of the iio_buffer attributes, it means we need to wrap them into iio_dev_attr One thing to be determined: if IIO_BUFFER_GET_FD_IOCTL for buffer0 should return an FD or not. Right now, it's returning 0. Alexandru Ardelean (11): docs: ioctl-number.rst: reserve IIO subsystem ioctl() space iio: core: register chardev only if needed iio: core-trigger: make iio_device_register_trigger_consumer() an int return iio: core: rework iio device group creation iio: buffer: group attr count and attr alloc iio: core: merge buffer/ & scan_elements/ attributes iio: add reference to iio buffer on iio_dev_attr iio: buffer: wrap all buffer attributes into iio_dev_attr iio: core: wrap iio device & buffer into struct for character devices iio: buffer: introduce support for attaching more IIO buffers iio: buffer: add ioctl() to support opening extra buffers for IIO device .../userspace-api/ioctl/ioctl-number.rst | 1 + drivers/iio/iio_core.h | 10 + drivers/iio/iio_core_trigger.h | 4 +- drivers/iio/industrialio-buffer.c | 420 +++++++++++++++--- drivers/iio/industrialio-core.c | 87 +++- drivers/iio/industrialio-event.c | 6 +- drivers/iio/industrialio-trigger.c | 6 +- include/linux/iio/buffer.h | 4 +- include/linux/iio/buffer_impl.h | 21 +- include/linux/iio/iio-opaque.h | 14 + include/linux/iio/iio.h | 5 - include/linux/iio/sysfs.h | 3 + include/uapi/linux/iio/buffer.h | 10 + 13 files changed, 487 insertions(+), 104 deletions(-) create mode 100644 include/uapi/linux/iio/buffer.h -- 2.17.1