iio: Add new operating mode for non triggered sw buffers
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 <jic23@kernel.org> Signed-off-by: Karol Wrona <k.wrona@samsung.com> Reviewed-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Jonathan Cameron <jic23@kernel.org>
This commit is contained in:
parent
ab80496a81
commit
03af03ad7c
2 changed files with 6 additions and 2 deletions
|
|
@ -639,6 +639,8 @@ static int __iio_update_buffers(struct iio_dev *indio_dev,
|
||||||
indio_dev->currentmode = INDIO_BUFFER_TRIGGERED;
|
indio_dev->currentmode = INDIO_BUFFER_TRIGGERED;
|
||||||
} else if (indio_dev->modes & INDIO_BUFFER_HARDWARE) {
|
} else if (indio_dev->modes & INDIO_BUFFER_HARDWARE) {
|
||||||
indio_dev->currentmode = 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 */
|
} else { /* Should never be reached */
|
||||||
ret = -EINVAL;
|
ret = -EINVAL;
|
||||||
goto error_run_postdisable;
|
goto error_run_postdisable;
|
||||||
|
|
|
||||||
|
|
@ -286,10 +286,11 @@ static inline s64 iio_get_time_ns(void)
|
||||||
/* Device operating modes */
|
/* Device operating modes */
|
||||||
#define INDIO_DIRECT_MODE 0x01
|
#define INDIO_DIRECT_MODE 0x01
|
||||||
#define INDIO_BUFFER_TRIGGERED 0x02
|
#define INDIO_BUFFER_TRIGGERED 0x02
|
||||||
|
#define INDIO_BUFFER_SOFTWARE 0x04
|
||||||
#define INDIO_BUFFER_HARDWARE 0x08
|
#define INDIO_BUFFER_HARDWARE 0x08
|
||||||
|
|
||||||
#define INDIO_ALL_BUFFER_MODES \
|
#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
|
#define INDIO_MAX_RAW_ELEMENTS 4
|
||||||
|
|
||||||
|
|
@ -593,7 +594,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)
|
static inline bool iio_buffer_enabled(struct iio_dev *indio_dev)
|
||||||
{
|
{
|
||||||
return indio_dev->currentmode
|
return indio_dev->currentmode
|
||||||
& (INDIO_BUFFER_TRIGGERED | INDIO_BUFFER_HARDWARE);
|
& (INDIO_BUFFER_TRIGGERED | INDIO_BUFFER_HARDWARE |
|
||||||
|
INDIO_BUFFER_SOFTWARE);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue