Re: [PATCH v4 0/6] iio: core: Add mmap interface infrastructure

From: Jonathan Cameron
Date: Sat Feb 27 2021 - 12:59:51 EST


On Thu, 18 Feb 2021 13:10:45 +0000
Jonathan Cameron <jic23@xxxxxxxxxx> wrote:

> On Wed, 17 Feb 2021 09:36:32 +0200
> Alexandru Ardelean <alexandru.ardelean@xxxxxxxxxx> wrote:
>
> Dropped v3 and applied v4 to the togreg branch of iio.git and pushed
> it out as testing for the autobuilders to poke at it and see what
> else they can find :)
>
> Jonathan

Following an off list discussion, I've dropped this series for now as more
time is needed to consider if the approach is the right way to go.

Jonathan

>
>
> > Changelog v3 -> v4:
> > * https://lore.kernel.org/linux-iio/20210215143234.3248-5-alexandru.ardelean@xxxxxxxxxx/T/
> > * added patch 'iio: buffer-dma: reduce the type of block.size to u32'
> > - resolves error on 64 bit archs; 32 bit block size should be enough
> > * in patch 'iio: buffer-dma: Add mmap support'
> > - added 'linux/types.h' include in uapi buffer.h header; an error
> > shows up when building with 'make allmodconfig'
> > * in patch 'tools: iio: add example for high-speed buffer support'
> > - calling ioctl(BOCK_FREE) only if use_high_speed is true
> >
> > Changelog v2 -> v3:
> > * https://lore.kernel.org/linux-iio/20210212101143.18993-1-alexandru.ardelean@xxxxxxxxxx/T/#u
> > * added 'Documentation: iio: add doc for high-speed buffer API'
> > * add 'iio: buffer-dma: split iio_dma_buffer_fileio_free() function'
> > * patch 'iio: buffer-dma: Add mmap support'
> > - unwind free on error path in iio_dma_buffer_alloc_blocks()
> > - removed double mm.h include
> > * patch 'tools: iio: add example for high-speed buffer support'
> > - call IIO_BUFFER_BLOCK_FREE_IOCTL on the error path of the
> > enable_high_speed() function
> >
> > Changelog v1 -> v2:
> > * https://lore.kernel.org/linux-iio/20210211123353.78963-1-alexandru.ardelean@xxxxxxxxxx/T/#t
> > * removed IIO_BUFFER_BLOCK_FLAG_CYCLIC flag; will be added in a later
> > patch
> > * removed extra line in tools/iio/iio_generic_buffer.c
> > * patch 'iio: core: Add mmap interface infrastructure'
> > added docstrings for new hooks (alloc_blocks, mmap, etc)
> >
> > This is basically Lars' work adapted from branch:
> > https://github.com/larsclausen/linux/commits/iio-high-speed-5.10
> > [hopefully i got the stuff correctly from that branch]
> >
> > What is different, is that this one is adapted on top of the multibuffer
> > support (currently at v5) discussed here:
> > https://lore.kernel.org/linux-iio/20210211122452.78106-1-alexandru.ardelean@xxxxxxxxxx/T/#t
> >
> > Also, adapted an example for high-speed/mmap support in
> > 'tools/iio/iio_generic_buffer.c'
> >
> > The example is adapted from libiio:
> > https://github.com/analogdevicesinc/libiio/blob/master/local.c#L51
> > but will all the ioctl()s organized after the one that are reserved
> > (hopefully) for IIO
> >
> > Tested that mmap() works.
> > Moved (artifically) valid buffer0 as buffer2 and the operation still
> > works.
> >
> > Alexandru Ardelean (4):
> > Documentation: iio: add doc for high-speed buffer API
> > iio: buffer-dma: split iio_dma_buffer_fileio_free() function
> > iio: buffer-dma: reduce the type of block.size to u32
> > tools: iio: add example for high-speed buffer support
> >
> > Lars-Peter Clausen (2):
> > iio: core: Add mmap interface infrastructure
> > iio: buffer-dma: Add mmap support
> >
> > Documentation/iio/iio_high_speed_buffers.rst | 100 ++++++
> > Documentation/iio/index.rst | 2 +
> > drivers/iio/buffer/industrialio-buffer-dma.c | 324 ++++++++++++++++--
> > .../buffer/industrialio-buffer-dmaengine.c | 28 +-
> > drivers/iio/industrialio-buffer.c | 158 +++++++++
> > include/linux/iio/buffer-dma.h | 27 +-
> > include/linux/iio/buffer_impl.h | 23 ++
> > include/uapi/linux/iio/buffer.h | 51 +++
> > tools/iio/iio_generic_buffer.c | 185 +++++++++-
> > 9 files changed, 847 insertions(+), 51 deletions(-)
> > create mode 100644 Documentation/iio/iio_high_speed_buffers.rst
> >
>