[RFC v5 01/11] [media] v4l: add V4L2_CAP_ORDERED to the uapi

From: Gustavo Padovan
Date: Wed Nov 15 2017 - 12:12:41 EST


From: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxx>

When using explicit synchronization userspace needs to know if
the queue can deliver everything back in the same order, so we added
a new capability that drivers can use to report that they are capable
of keeping ordering.

In videobuf2 core when using fences we also make sure to keep the ordering
of buffers, so if the driver guarantees it too the whole pipeline inside
V4L2 will be ordered and the V4L2_CAP_ORDERED should be used.

Signed-off-by: Gustavo Padovan <gustavo.padovan@xxxxxxxxxxxxx>
---
Documentation/media/uapi/v4l/vidioc-querycap.rst | 3 +++
include/uapi/linux/videodev2.h | 1 +
2 files changed, 4 insertions(+)

diff --git a/Documentation/media/uapi/v4l/vidioc-querycap.rst b/Documentation/media/uapi/v4l/vidioc-querycap.rst
index 66fb1b3d6e6e..ed3daa814da9 100644
--- a/Documentation/media/uapi/v4l/vidioc-querycap.rst
+++ b/Documentation/media/uapi/v4l/vidioc-querycap.rst
@@ -254,6 +254,9 @@ specification the ioctl returns an ``EINVAL`` error code.
* - ``V4L2_CAP_TOUCH``
- 0x10000000
- This is a touch device.
+ * - ``V4L2_CAP_ORDERED``
+ - 0x20000000
+ - The device queue is ordered.
* - ``V4L2_CAP_DEVICE_CAPS``
- 0x80000000
- The driver fills the ``device_caps`` field. This capability can
diff --git a/include/uapi/linux/videodev2.h b/include/uapi/linux/videodev2.h
index 185d6a0acc06..cd6fc1387f47 100644
--- a/include/uapi/linux/videodev2.h
+++ b/include/uapi/linux/videodev2.h
@@ -459,6 +459,7 @@ struct v4l2_capability {
#define V4L2_CAP_STREAMING 0x04000000 /* streaming I/O ioctls */

#define V4L2_CAP_TOUCH 0x10000000 /* Is a touch device */
+#define V4L2_CAP_ORDERED 0x20000000 /* Is the device queue ordered */

#define V4L2_CAP_DEVICE_CAPS 0x80000000 /* sets device capabilities field */

--
2.13.6