[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20210212102021.47276-1-alexandru.ardelean@analog.com>
Date: Fri, 12 Feb 2021 12:20:16 +0200
From: Alexandru Ardelean <alexandru.ardelean@...log.com>
To: <linux-kernel@...r.kernel.org>, <linux-iio@...r.kernel.org>
CC: <lars@...afoo.de>, <Michael.Hennerich@...log.com>,
<jic23@...nel.org>, <nuno.sa@...log.com>,
<dragos.bogdan@...log.com>,
Alexandru Ardelean <alexandru.ardelean@...log.com>
Subject: [RFC PATCH 0/5] iio: buffer: add output buffer and cyclic mode
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-speed-5.10
But this isn't tested.
[1] Requires that these sets be applied (in this order):
* https://lore.kernel.org/linux-iio/20210211122452.78106-1-alexandru.ardelean@analog.com/T/#t
* https://lore.kernel.org/linux-iio/20210212101143.18993-1-alexandru.ardelean@analog.com/T/#t
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
Powered by blists - more mailing lists