iio: Specify supported modes for buffers
authorLars-Peter Clausen <lars@metafoo.de>
Fri, 29 May 2015 16:14:21 +0000 (18:14 +0200)
committerJonathan Cameron <jic23@kernel.org>
Mon, 1 Jun 2015 10:31:12 +0000 (11:31 +0100)
For each buffer type specify the supported device modes for this buffer.
This allows us for devices which support multiple different operating modes
to pick the correct operating mode based on the modes supported by the
attached buffers.

It also prevents that buffers with conflicting modes are attached
to a device at the same time or that a buffer with a non-supported mode is
attached to a device (e.g. in-kernel callback buffer to a device only
supporting hardware mode).

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/iio/buffer_cb.c
drivers/iio/industrialio-buffer.c
drivers/iio/kfifo_buf.c
drivers/staging/iio/accel/sca3000_ring.c
include/linux/iio/buffer.h

index eb46e72..1648e6e 100644 (file)
@@ -33,6 +33,8 @@ static void iio_buffer_cb_release(struct iio_buffer *buffer)
 static const struct iio_buffer_access_funcs iio_cb_access = {
        .store_to = &iio_buffer_cb_store_to,
        .release = &iio_buffer_cb_release,
+
+       .modes = INDIO_BUFFER_SOFTWARE | INDIO_BUFFER_TRIGGERED,
 };
 
 struct iio_cb_buffer *iio_channel_get_all_cb(struct device *dev,
Simple merge
Simple merge
Simple merge