| From: |
| Alexandru Ardelean <alexandru.ardelean-AT-analog.com> |
| To: |
| linux-kernel-AT-vger.kernel.org, linux-iio-AT-vger.kernel.org |
| Subject: |
| [RFC PATCH 0/5] iio: buffer: add output buffer and cyclic mode |
| Date: |
| Fri, 12 Feb 2021 12:20:16 +0200 |
| Message-ID: |
| <20210212102021.47276-1-alexandru.ardelean@analog.com> |
| Cc: |
| lars-AT-metafoo.de, Michael.Hennerich-AT-analog.com, jic23-AT-kernel.org, nuno.sa-AT-analog.com, dragos.bogdan-AT-analog.com, Alexandru Ardelean <alexandru.ardelean-AT-analog.com> |
| Archive-link: |
| Article |
Largely, an adaptation of Lars' work, applied on the IIO multi-buffer
support + high-speed/mmap support [1].
Found here:
https://github.com/larsclausen/linux/commits/iio-high-spe...
But this isn't tested.
[1] Requires that these sets be applied (in this order):
* https://lore.kernel.org/linux-iio/20210211122452.78106-1-...
* https://lore.kernel.org/linux-iio/20210212101143.18993-1-...
Some of the variation from the original work are:
1. It's applied on top of the multibuffer support; so the direction of the
data is set per iio_buffer, and not iio_dev
2. Cyclic mode is a separate patch
3. devm_iio_dmaengine_buffer_alloc() requires the definition of
'enum iio_buffer_direction'; which means that 'linux/iio/buffer.h'
needs to be included in buffer-dma.h; Lars tried to use a bool, but
using the enum seems a bit more consistent and allows us to maybe
go down the route of both I/O buffers (some day); not sure if
that's sane or not (you never know)
4. Various re-formatting; and added some docstrings where I remembered
to so so
Lars-Peter Clausen (5):
iio: Add output buffer support
iio: kfifo-buffer: Add output buffer support
iio: buffer-dma: Allow to provide custom buffer ops
iio: buffer-dma: Add output buffer support
iio: buffer-dma: add support for cyclic DMA transfers
drivers/iio/adc/adi-axi-adc.c | 5 +-
drivers/iio/buffer/industrialio-buffer-dma.c | 120 ++++++++++++++++--
.../buffer/industrialio-buffer-dmaengine.c | 57 +++++++--
drivers/iio/buffer/kfifo_buf.c | 50 ++++++++
drivers/iio/industrialio-buffer.c | 110 +++++++++++++++-
include/linux/iio/buffer-dma.h | 11 +-
include/linux/iio/buffer-dmaengine.h | 7 +-
include/linux/iio/buffer.h | 7 +
include/linux/iio/buffer_impl.h | 11 ++
include/uapi/linux/iio/buffer.h | 1 +
10 files changed, 348 insertions(+), 31 deletions(-)
--
2.17.1