This RFC series adds support for dynamic arrays and for read-only requests. This respins and combines these older series: Adding dynamic array controls: https://patchwork.linuxtv.org/project/linux-media/cover/20210428101841.696059-1-hverkuil-cisco@xxxxxxxxx/ Adding support for read-only requests: https://patchwork.linuxtv.org/project/linux-media/cover/20200818143719.102128-1-hverkuil-cisco@xxxxxxxxx/ The dynamic array support (patches 1-3) is pretty much the same as the original series, just rebased. The read-only request support (patches 4-11) is greatly simplified compared to the original due to this patch that was merged recently: https://patchwork.linuxtv.org/project/linux-media/patch/20210428101841.696059-2-hverkuil-cisco@xxxxxxxxx/ This made the read-only request implementation a lot easier. Patches 1-3 and 4-11 are independent of one another. The only reason this series is marked RFC is that it needs some documentation improvements (or at the least, verification that everything is properly documented), and it needs a real driver that implements the feature. I have CC-ed those who I know are/have been working on either dynamic arrays or read-only requests, so if you want to get this into the kernel, then submit patches for a driver, and include the support from this RFC series. I'll post a short series next for v4l-utils, adding support for these two features. Regards, Hans Hans Verkuil (11): videodev2.h: add V4L2_CTRL_FLAG_DYNAMIC_ARRAY v4l2-ctrls: add support for dynamically allocated arrays. vivid: add dynamic array test control media: document read-only requests videodev2.h: add V4L2_BUF_CAP_SUPPORTS_RO_REQUESTS videobuf2-core: add vb2_request_buffer_first() videobuf2-v4l2.c: vb2_request_validate: support RO requests v4l2-mem2mem.c: allow requests for capture queues vivid: add ro_requests module option vim2m: support read-only requests on the capture queue vicodec: add support for read-only requests Documentation/admin-guide/media/vivid.rst | 10 + .../mediactl/media-request-ioc-queue.rst | 5 + .../media/mediactl/request-api.rst | 11 ++ .../media/v4l/vidioc-queryctrl.rst | 8 + .../media/v4l/vidioc-reqbufs.rst | 6 + .../media/common/videobuf2/videobuf2-core.c | 22 +++ .../media/common/videobuf2/videobuf2-v4l2.c | 23 ++- .../media/test-drivers/vicodec/vicodec-core.c | 67 +++---- drivers/media/test-drivers/vim2m.c | 10 +- drivers/media/test-drivers/vivid/vivid-core.c | 10 + .../media/test-drivers/vivid/vivid-ctrls.c | 15 ++ drivers/media/v4l2-core/v4l2-ctrls-api.c | 103 +++++++--- drivers/media/v4l2-core/v4l2-ctrls-core.c | 182 ++++++++++++++---- drivers/media/v4l2-core/v4l2-ctrls-priv.h | 3 +- drivers/media/v4l2-core/v4l2-ctrls-request.c | 13 +- drivers/media/v4l2-core/v4l2-mem2mem.c | 16 +- include/media/v4l2-ctrls.h | 42 +++- include/media/videobuf2-core.h | 8 + include/uapi/linux/videodev2.h | 2 + 19 files changed, 440 insertions(+), 116 deletions(-) -- 2.30.2