Manually rebased: bcm27xx/patches-5.15/950-0600-xhci-quirks-add-link-TRB-quirk-for-VL805.patch bcm27xx/patches-5.15/950-0606-usb-xhci-add-VLI_TRB_CACHE_BUG-quirk.patch bcm27xx/patches-5.15/950-0717-usb-xhci-add-a-quirk-for-Superspeed-bulk-OUT-transfe.patch bcm53xx/patches-5.15/180-usb-xhci-add-support-for-performing-fake-doorbell.patch lantiq/patches-5.15/0028-NET-lantiq-various-etop-fixes.patch All other patches automatically rebased Build system: x86_64 Build-tested: bcm2711/RPi4B, mt7622/RT3200 Run-tested: bcm2711/RPi4B, mt7622/RT3200 Signed-off-by: John Audia <therealgraysky@proton.me>
53 lines
2.3 KiB
Diff
53 lines
2.3 KiB
Diff
From 1ef126fb69d37c6958a0b945365e532b500d43bd Mon Sep 17 00:00:00 2001
|
|
From: Hans Verkuil <hverkuil-cisco@xs4all.nl>
|
|
Date: Wed, 14 Apr 2021 15:01:16 +0200
|
|
Subject: [PATCH] videodev2.h: add V4L2_CTRL_FLAG_DYNAMIC_ARRAY
|
|
|
|
Add a new flag that indicates that this control is a dynamically sized
|
|
array. Also document this flag.
|
|
|
|
Currently dynamically sized arrays are limited to one dimensional arrays,
|
|
but that might change in the future if there is a need for it.
|
|
|
|
The initial use-case of dynamic arrays are stateless codecs. A frame
|
|
can be divided in many slices, so you want to provide an array containing
|
|
slice information for each slice. Typically the number of slices is small,
|
|
but the standard allow for hundreds or thousands of slices. Dynamic arrays
|
|
are a good solution since sizing the array for the worst case would waste
|
|
substantial amounts of memory.
|
|
|
|
Signed-off-by: Hans Verkuil <hverkuil-cisco@xs4all.nl>
|
|
(cherry picked from commit c095ad310b223b9de38d491c9f66533d05586b45)
|
|
---
|
|
.../userspace-api/media/v4l/vidioc-queryctrl.rst | 8 ++++++++
|
|
include/uapi/linux/videodev2.h | 1 +
|
|
2 files changed, 9 insertions(+)
|
|
|
|
--- a/Documentation/userspace-api/media/v4l/vidioc-queryctrl.rst
|
|
+++ b/Documentation/userspace-api/media/v4l/vidioc-queryctrl.rst
|
|
@@ -607,6 +607,14 @@ See also the examples in :ref:`control`.
|
|
``V4L2_CTRL_FLAG_GRABBED`` flag when buffers are allocated or
|
|
streaming is in progress since most drivers do not support changing
|
|
the format in that case.
|
|
+ * - ``V4L2_CTRL_FLAG_DYNAMIC_ARRAY``
|
|
+ - 0x0800
|
|
+ - This control is a dynamically sized 1-dimensional array. It
|
|
+ behaves the same as a regular array, except that the number
|
|
+ of elements as reported by the ``elems`` field is between 1 and
|
|
+ ``dims[0]``. So setting the control with a differently sized
|
|
+ array will change the ``elems`` field when the control is
|
|
+ queried afterwards.
|
|
|
|
Return Value
|
|
============
|
|
--- a/include/uapi/linux/videodev2.h
|
|
+++ b/include/uapi/linux/videodev2.h
|
|
@@ -1883,6 +1883,7 @@ struct v4l2_querymenu {
|
|
#define V4L2_CTRL_FLAG_HAS_PAYLOAD 0x0100
|
|
#define V4L2_CTRL_FLAG_EXECUTE_ON_WRITE 0x0200
|
|
#define V4L2_CTRL_FLAG_MODIFY_LAYOUT 0x0400
|
|
+#define V4L2_CTRL_FLAG_DYNAMIC_ARRAY 0x0800
|
|
|
|
/* Query flags, to be ORed with the control ID */
|
|
#define V4L2_CTRL_FLAG_NEXT_CTRL 0x80000000
|