On Wed, 5 Jun 2024 13:08:39 +0200 Paul Cercueil paul@crapouillou.net wrote:
Hi Jonathan,
Here is a revised (and hopefully final?) version of my DMABUF patchset.
Fingers crossed it's just docs changes for v11.
So on to the details of how to merge this... For the DMAEngine maintainers: Given IIO changes dominate this series it makes sense for me to pick it up through IIO.
Do you want an immutable branch with the first patch on it, or is this unlikely to cause merge conflicts with any other ongoing work in dmabuffer land?
I'm fine either way and if I don't hear back on this will do an immutable branch and announce it when I apply v11 (I hope!)
Jonathan
This v10 removes the extra "flags" parameter of dmaengine_prep_peripheral_dma_vec(), and adds kernel doc to the function as Vinod requested.
As Nuno upstreamed support for output buffers, I (slightly) modified patch 5/6 and now output buffers are supported with the DMABUF API. All I did was remove a "fail if output" check really.
This was based on next-20240605.
Changelog:
- [1/6]:
- Add kernel doc to dmaengine_prep_peripheral_dma_vec()
- Remove extra flags parameter
- [2/6]:
- Use the new function prototype (without the extra prep_flags).
- [5/6]:
- Remove extra flags parameter to dmaengine_prep_peripheral_dma_vec()
- Add support for TX transfers
Cheers, -Paul
Paul Cercueil (6): 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/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 | 180 ++++++- .../buffer/industrialio-buffer-dmaengine.c | 62 ++- drivers/iio/industrialio-buffer.c | 462 ++++++++++++++++++ include/linux/dmaengine.h | 33 ++ include/linux/iio/buffer-dma.h | 31 ++ include/linux/iio/buffer_impl.h | 30 ++ include/uapi/linux/iio/buffer.h | 22 + 11 files changed, 896 insertions(+), 20 deletions(-) create mode 100644 Documentation/iio/iio_dmabuf_api.rst