Hi Jonathan,
Here's the v11 of my patchset that introduces DMABUF support to IIO.
It addresses the few points that were raised in the review of the v10. It also adds Nuno as a co-developer.
Changelog: - [3/7]: - Document .lock_queue / .unlock_queue buffer callbacks - Add small comment to explain what the spinlock protects - Use guard(mutex)
- [4/7]: - Remove useless field "attach" in struct iio_dma_buffer_block - Document "sg_table" and "fence" fields in struct iio_block_state
- [6/7]: - "a IIO buffer" -> "an IIO buffer" - Add variable name in IOCTL calls
- [7/7]: New patch, to document the DMA changes
Cheers, -Paul
Paul Cercueil (7): dmaengine: Add API function dmaengine_prep_peripheral_dma_vec() dmaengine: dma-axi-dmac: Implement device_prep_peripheral_dma_vec iio: core: Add new DMABUF interface infrastructure iio: buffer-dma: Enable support for DMABUFs iio: buffer-dmaengine: Support new DMABUF based userspace API Documentation: iio: Document high-speed DMABUF based API Documentation: dmaengine: Document new dma_vec API
Documentation/driver-api/dmaengine/client.rst | 9 + .../driver-api/dmaengine/provider.rst | 10 + Documentation/iio/iio_dmabuf_api.rst | 54 +++ Documentation/iio/index.rst | 1 + drivers/dma/dma-axi-dmac.c | 40 ++ drivers/iio/Kconfig | 1 + drivers/iio/buffer/industrialio-buffer-dma.c | 178 ++++++- .../buffer/industrialio-buffer-dmaengine.c | 62 ++- drivers/iio/industrialio-buffer.c | 457 ++++++++++++++++++ include/linux/dmaengine.h | 33 ++ include/linux/iio/buffer-dma.h | 31 ++ include/linux/iio/buffer_impl.h | 33 ++ include/uapi/linux/iio/buffer.h | 22 + 13 files changed, 911 insertions(+), 20 deletions(-) create mode 100644 Documentation/iio/iio_dmabuf_api.rst