On 01/07/2015 07:36 PM, Karol Wrona wrote:
There was a need for non triggered software buffer type.  It can be used when
triggered model does not fit and INDIO_BUFFER_HARDWARE causes confusion because
the data stream can be obtained not directly form hardware backend.

Suggested-by: Jonathan Cameron <ji...@kernel.org>
Signed-off-by: Karol Wrona <k.wr...@samsung.com>

Looks good, thanks.

Reviewed-by: Lars-Peter Clausen <l...@metafoo.de>

---
  drivers/iio/industrialio-buffer.c |    2 ++
  include/linux/iio/iio.h           |    6 ++++--
  2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/iio/industrialio-buffer.c 
b/drivers/iio/industrialio-buffer.c
index f971f79..15e6de3 100644
--- a/drivers/iio/industrialio-buffer.c
+++ b/drivers/iio/industrialio-buffer.c
@@ -680,6 +680,8 @@ static int __iio_update_buffers(struct iio_dev *indio_dev,
                indio_dev->currentmode = INDIO_BUFFER_TRIGGERED;
        } else if (indio_dev->modes & INDIO_BUFFER_HARDWARE) {
                indio_dev->currentmode = INDIO_BUFFER_HARDWARE;
+       } else if (indio_dev->modes & INDIO_BUFFER_SOFTWARE) {
+               indio_dev->currentmode = INDIO_BUFFER_SOFTWARE;
        } else { /* Should never be reached */
                ret = -EINVAL;
                goto error_run_postdisable;
diff --git a/include/linux/iio/iio.h b/include/linux/iio/iio.h
index 3642ce7..55e63fd 100644
--- a/include/linux/iio/iio.h
+++ b/include/linux/iio/iio.h
@@ -284,10 +284,11 @@ static inline s64 iio_get_time_ns(void)
  /* Device operating modes */
  #define INDIO_DIRECT_MODE             0x01
  #define INDIO_BUFFER_TRIGGERED                0x02
+#define INDIO_BUFFER_SOFTWARE          0x04
  #define INDIO_BUFFER_HARDWARE         0x08

  #define INDIO_ALL_BUFFER_MODES                                        \
-       (INDIO_BUFFER_TRIGGERED | INDIO_BUFFER_HARDWARE)
+       (INDIO_BUFFER_TRIGGERED | INDIO_BUFFER_HARDWARE | INDIO_BUFFER_SOFTWARE)

  #define INDIO_MAX_RAW_ELEMENTS                4

@@ -591,7 +592,8 @@ void devm_iio_trigger_free(struct device *dev, struct 
iio_trigger *iio_trig);
  static inline bool iio_buffer_enabled(struct iio_dev *indio_dev)
  {
        return indio_dev->currentmode
-               & (INDIO_BUFFER_TRIGGERED | INDIO_BUFFER_HARDWARE);
+               & (INDIO_BUFFER_TRIGGERED | INDIO_BUFFER_HARDWARE |
+                  INDIO_BUFFER_SOFTWARE);
  }

  /**


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to