This series adds support for dynamic array controls and for a new v4l2_ctrl_modify_dimensions() function to modify the dimensions of an array control by the driver. The three dynamic array patches are identical to those used in the stateless HEVC uAPI patches and are part of this pull request: https://patchwork.linuxtv.org/project/linux-media/patch/8409c576-e2f3-489a-23df-dc16386aac13@xxxxxxxxx/ The remaining five patches build on those and add support for v4l2_ctrl_modify_dimensions(). Note that patch 7 is one that I strongly believe is needed since it adds no overhead and there is no other way to inform userspace that the dimensions have changed. But if this is truly deemed unacceptable, then it can be dropped. Changes since v1: - patch 6/8: simplify elems calculation, use cur2new to copy the updated current value to the new value (uses a memcpy internally), add missing lockdep_assert_held(), improve function description, call send_event to indicate that the current value has changed. - patch 7/8: this just adds the new control flag since the send_event call is now added in the previous patch. - patch 8/8: downsample the resolution to speed up vivid_update_format_cap(). Regards, Hans Hans Verkuil (8): videodev2.h: add V4L2_CTRL_FLAG_DYNAMIC_ARRAY v4l2-ctrls: add support for dynamically allocated arrays. vivid: add dynamic array test control v4l2-ctrls: allocate space for arrays v4l2-ctrls: alloc arrays in ctrl_ref v4l2-ctrls: add v4l2_ctrl_modify_dimensions v4l2-ctrls: add change flag for when dimensions change vivid: add pixel_array test control .../media/v4l/vidioc-dqevent.rst | 5 + .../media/v4l/vidioc-queryctrl.rst | 8 + .../media/videodev2.h.rst.exceptions | 2 + drivers/media/test-drivers/vivid/vivid-core.h | 5 +- .../media/test-drivers/vivid/vivid-ctrls.c | 29 +++ .../media/test-drivers/vivid/vivid-vid-cap.c | 4 + drivers/media/v4l2-core/v4l2-ctrls-api.c | 140 ++++++++++--- drivers/media/v4l2-core/v4l2-ctrls-core.c | 188 +++++++++++++++--- drivers/media/v4l2-core/v4l2-ctrls-priv.h | 3 +- drivers/media/v4l2-core/v4l2-ctrls-request.c | 13 +- include/media/v4l2-ctrls.h | 94 ++++++++- include/uapi/linux/videodev2.h | 2 + 12 files changed, 421 insertions(+), 72 deletions(-) -- 2.35.1