]> git.baikalelectronics.ru Git - kernel.git/commitdiff
IIO: consumer: allow to set buffer sizes
authorArnaud Pouliquen <arnaud.pouliquen@st.com>
Wed, 10 Jan 2018 10:13:13 +0000 (11:13 +0100)
committerMark Brown <broonie@kernel.org>
Wed, 10 Jan 2018 10:30:14 +0000 (10:30 +0000)
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>
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/iio/buffer/industrialio-buffer-cb.c
include/linux/iio/consumer.h

index 4847534700e734be8da302a79c1f7d61a4c5bd22..ea63c838eeae523652f4270e1489d61ae385dd96 100644 (file)
@@ -104,6 +104,17 @@ error_free_cb_buff:
 }
 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,
index 2017f35db17c9b1ac68334e210beacf7b041e338..9887f4f8e2a898bce65cc76477eab86aadafa296 100644 (file)
@@ -133,6 +133,17 @@ struct iio_cb_buffer *iio_channel_get_all_cb(struct device *dev,
                                             int (*cb)(const void *data,
                                                       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.