[RFC PATCH 0/5] iio: buffer: add output buffer and cyclic mode

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxx/T/#t
* https://lore.kernel.org/linux-iio/20210212101143.18993-1-alexandru.ardelean@xxxxxxxxxx/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




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux