videobuf2: support new noncontiguous DMA API
From: | Sergey Senozhatsky <senozhatsky-AT-chromium.org> | |
To: | Tomasz Figa <tfiga-AT-chromium.org>, Hans Verkuil <hverkuil-cisco-AT-xs4all.nl> | |
Subject: | [PATCH 0/8] videobuf2: support new noncontiguous DMA API | |
Date: | Tue, 02 Mar 2021 09:46:16 +0900 | |
Message-ID: | <20210302004624.31294-1-senozhatsky@chromium.org> | |
Cc: | Christoph Hellwig <hch-AT-lst.de>, Mauro Carvalho Chehab <mchehab-AT-kernel.org>, linux-media-AT-vger.kernel.org, linux-kernel-AT-vger.kernel.org, Sergey Senozhatsky <senozhatsky-AT-chromium.org> | |
Archive-link: | Article |
Hello, RFC The series adds support for new noncontiguous DMA API [0] and adds V4L2_FLAG_MEMORY_NON_COHERENT UAPI. This is similar to previous V4L2_FLAG_MEMORY_NON_CONSISTENT (which was renamed), but the patch set goes a bit further this time and also does some videobuf2 API refactroings along the way. A corresponding v4l2-compliance patch will be posted shortly. [0] https://lore.kernel.org/lkml/20210301085236.947011-2-hch@... Sergey Senozhatsky (8): videobuf2: rework vb2_mem_ops API videobuf2: inverse buffer cache_hints flags videobuf2: split buffer cache_hints initialisation videobuf2: move cache_hints handling to allocators videobuf2: add V4L2_FLAG_MEMORY_NON_COHERENT flag videobuf2: add queue memory coherency parameter videobuf2: handle V4L2_FLAG_MEMORY_NON_COHERENT flag videobuf2: handle non-contiguous DMA allocations .../userspace-api/media/v4l/buffer.rst | 40 +++- .../media/v4l/vidioc-create-bufs.rst | 7 +- .../media/v4l/vidioc-reqbufs.rst | 16 +- .../media/common/videobuf2/videobuf2-core.c | 135 +++++++++----- .../common/videobuf2/videobuf2-dma-contig.c | 175 ++++++++++++++---- .../media/common/videobuf2/videobuf2-dma-sg.c | 39 ++-- .../media/common/videobuf2/videobuf2-v4l2.c | 47 ++--- .../common/videobuf2/videobuf2-vmalloc.c | 30 +-- drivers/media/dvb-core/dvb_vb2.c | 2 +- drivers/media/v4l2-core/v4l2-compat-ioctl32.c | 9 +- drivers/media/v4l2-core/v4l2-ioctl.c | 5 +- include/media/videobuf2-core.h | 57 +++--- include/uapi/linux/videodev2.h | 13 +- 13 files changed, 396 insertions(+), 179 deletions(-) -- 2.30.1.766.gb4fecdf3b7-goog