I've let this sit for nearly long enough I think. If no one shouts in the next few days (or asks for more time to take a look). I'll add patches 1-3 of this the togreg branch of iio.git and send a pull request for it to Greg. The input client driver can wait for a bit. I'm really really keen to get this lot in place in time to have a few weeks of testing in linux-next before the merge window opens. (it's over a year old now as Peter noticed, and I'm getting serriously bored of it ;) > Same as V5 but with the changes from Lars-Peter's review to close some > memory leaks and catch up with some changes in the subsystem that had > passed this by. It should also now be possible to disable the > timestamp! (oops). > > Thanks to Lars for his work reviewing my patches and also for his > excellent work reviewing in general! Without him the whole subsystem > would be moving a lot slower. > > > Again, more testing would be good (thanks for those who already > have). > > In quick summary this is needed to do interrupt driven in kernel > clients as it adds the option to push to multiple 'buffer' interfaces. > Note that some of these may not actually do any buffering but rather > push directly into another subsytem (the example is input). > > I would like to merge at least the first 3 patches early in this cycle. > What I need is some testing across a reasonable range of devices. Review > is welcome of course as well! > > The complexity in this set is entirely in the changes to industrialio-buffer.c > concerning how we go about adding and removing client buffers. To do this > we need to work out which scan mask is appropriate given the requests of > all the given buffers (and whether we can satisfy it). I've been testing > with the max1363 driver which probably has the most complex set of available > scan masks. Thus when a new buffer is added or one is removed the whole > buffer set are torn down and built up again. This may be undesirable for > some applications but should occur only rarely. > > The example driver is for bridging to the input subsystem and still needs > some work, but that can occur later in this merge cycle whereas the changes > to the core really want to go in asap. > > Changes since v3 > > Rebased and added other drivers that have occured whilst this patch series > has been languishing in my local tree. > > Changes since V2. > > Improved handling of error conditions in the buffer insertion and > removal code. (suggested by Lars-Peter). I want to take another > look at these, but didn't want to keep people from testing this > in the meantime. > > Also a number of minor fixes that came up during testing. > > Thanks, > > Jonathan > > > Jonathan Cameron (4): > staging:iio: Add support for multiple buffers > staging:iio:in kernel users: Add a data field for channel specific > info. > staging:iio: add a callback buffer for in kernel push interface > staging:iio: Proof of concept input driver. > > drivers/iio/Kconfig | 6 + > drivers/iio/Makefile | 1 + > drivers/iio/accel/hid-sensor-accel-3d.c | 15 +- > drivers/iio/adc/ad7266.c | 3 +- > drivers/iio/adc/ad7476.c | 2 +- > drivers/iio/adc/ad_sigma_delta.c | 2 +- > drivers/iio/adc/at91_adc.c | 3 +- > drivers/iio/buffer_cb.c | 113 +++++++ > drivers/iio/gyro/hid-sensor-gyro-3d.c | 15 +- > drivers/iio/industrialio-buffer.c | 380 ++++++++++++++++-------- > drivers/iio/industrialio-core.c | 1 + > drivers/iio/inkern.c | 1 + > drivers/iio/light/adjd_s311.c | 3 +- > drivers/iio/light/hid-sensor-als.c | 15 +- > drivers/iio/magnetometer/hid-sensor-magn-3d.c | 15 +- > drivers/staging/iio/Kconfig | 11 + > drivers/staging/iio/Makefile | 1 + > drivers/staging/iio/accel/adis16201_ring.c | 2 +- > drivers/staging/iio/accel/adis16203_ring.c | 2 +- > drivers/staging/iio/accel/adis16204_ring.c | 2 +- > drivers/staging/iio/accel/adis16209_ring.c | 2 +- > drivers/staging/iio/accel/adis16240_ring.c | 2 +- > drivers/staging/iio/accel/lis3l02dq_ring.c | 2 +- > drivers/staging/iio/adc/ad7298_ring.c | 2 +- > drivers/staging/iio/adc/ad7606_ring.c | 2 +- > drivers/staging/iio/adc/ad7887_ring.c | 2 +- > drivers/staging/iio/adc/ad799x_ring.c | 2 +- > drivers/staging/iio/adc/max1363_ring.c | 2 +- > drivers/staging/iio/gyro/adis16260_ring.c | 2 +- > drivers/staging/iio/iio_input.c | 225 ++++++++++++++ > drivers/staging/iio/iio_input.h | 23 ++ > drivers/staging/iio/iio_simple_dummy_buffer.c | 5 +- > drivers/staging/iio/impedance-analyzer/ad5933.c | 4 +- > drivers/staging/iio/imu/adis16400_ring.c | 5 +- > drivers/staging/iio/meter/ade7758_ring.c | 2 +- > include/linux/iio/buffer.h | 24 +- > include/linux/iio/consumer.h | 48 +++ > include/linux/iio/iio.h | 2 + > include/linux/iio/machine.h | 2 + > 39 files changed, 743 insertions(+), 208 deletions(-) > create mode 100644 drivers/iio/buffer_cb.c > create mode 100644 drivers/staging/iio/iio_input.c > create mode 100644 drivers/staging/iio/iio_input.h > -- 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