On Thu, 9 Nov 2017 11:12:32 +0100 Arnaud Pouliquen arnaud.pouliquen@st.com wrote:
Add iio consumer API to set buffer size and watermark according to sysfs API.
Signed-off-by: Arnaud Pouliquen arnaud.pouliquen@st.com
Reviewed-by: Jonathan Cameron Jonathan.Cameron@huawei.com
V3 -> V4 changes:
- Set only the Watermark not the buffer lenght
- Rename functions to replace "params" with "watermark"
drivers/iio/buffer/industrialio-buffer-cb.c | 11 +++++++++++ include/linux/iio/consumer.h | 11 +++++++++++ 2 files changed, 22 insertions(+)
diff --git a/drivers/iio/buffer/industrialio-buffer-cb.c b/drivers/iio/buffer/industrialio-buffer-cb.c index 4847534..ea63c83 100644 --- a/drivers/iio/buffer/industrialio-buffer-cb.c +++ b/drivers/iio/buffer/industrialio-buffer-cb.c @@ -104,6 +104,17 @@ struct iio_cb_buffer *iio_channel_get_all_cb(struct device *dev, } EXPORT_SYMBOL_GPL(iio_channel_get_all_cb);
+int iio_channel_cb_set_buffer_watermark(struct iio_cb_buffer *cb_buff,
size_t watermark)
+{
- if (!watermark)
return -EINVAL;
- cb_buff->buffer.watermark = watermark;
- return 0;
+} +EXPORT_SYMBOL_GPL(iio_channel_cb_set_buffer_watermark);
int iio_channel_start_all_cb(struct iio_cb_buffer *cb_buff) { return iio_update_buffers(cb_buff->indio_dev, &cb_buff->buffer, diff --git a/include/linux/iio/consumer.h b/include/linux/iio/consumer.h index 5e347a9..0d94557 100644 --- a/include/linux/iio/consumer.h +++ b/include/linux/iio/consumer.h @@ -134,6 +134,17 @@ struct iio_cb_buffer *iio_channel_get_all_cb(struct device *dev, void *private), void *private); /**
- iio_channel_cb_set_buffer_watermark() - set the buffer watermark.
- @cb_buffer: The callback buffer from whom we want the channel
information.
- @watermark: buffer watermark in bytes.
- This function allows to configure the buffer watermark.
- */
+int iio_channel_cb_set_buffer_watermark(struct iio_cb_buffer *cb_buffer,
size_t watermark);
+/**
- iio_channel_release_all_cb() - release and unregister the callback.
- @cb_buffer: The callback buffer that was allocated.
*/