This series adds vivid metadata capture and output support. While working on that it was discovered that the v4l2 core didn't correctly validate the ioctls in the case of the vivid driver that has a complex mix of V4L2 devices and various video inputs, each with different properties. Some other cleanups were also done in that code to simplify the logic and the ioctl validation for touch devices was also improved. Many thanks to Vandana for working on this as part of the Linux Kernel Mentorship Program. Note: the v4l2-compliance test will fail for the metadata output. To make that work this patch is needed: https://patchwork.linuxtv.org/patch/59480/ Once this series is merged I'll apply that patch as well to v4l-utils. Changes in v2: - Updated the "v4l2:Add vivid metadata doc" patch with new dual license Regards, Hans The following changes since commit 503e59365dd134b2c63864f14e2de0476284b003: media: i2c: ov2659: Switch to SPDX Licensing (2019-10-01 17:39:16 -0300) are available in the Git repository at: git://linuxtv.org/hverkuil/media_tree.git tags/br-v5.5f for you to fetch changes up to d1c35b1d11a00b4794a7f0fbce50d754bc72ed36: vivid: Add metadata output support (2019-10-17 08:50:14 +0200) ---------------------------------------------------------------- Tag branch ---------------------------------------------------------------- Hans Verkuil (3): v4l2-dev: simplify the SDR checks v4l2-dev: fix is_tch checks v4l2-dev: disable frequency and tuner ioctls for touch Vandana BN (5): v4l2-core: correctly validate video and metadata ioctls vivid: Add metadata capture support Documentation:media:v4l2:Add vivid metadata doc v4l2-core: Add new metadata format vivid: Add metadata output support Documentation/media/uapi/v4l/meta-formats.rst | 1 + Documentation/media/uapi/v4l/pixfmt-meta-vivid.rst | 60 +++++++++++++++ drivers/media/platform/vivid/Makefile | 2 +- drivers/media/platform/vivid/vivid-core.c | 197 ++++++++++++++++++++++++++++++++++++++++++++++-- drivers/media/platform/vivid/vivid-core.h | 24 ++++++ drivers/media/platform/vivid/vivid-ctrls.c | 75 ++++++++++++++++++ drivers/media/platform/vivid/vivid-kthread-cap.c | 54 +++++++++++-- drivers/media/platform/vivid/vivid-kthread-out.c | 49 +++++++++++- drivers/media/platform/vivid/vivid-meta-cap.c | 201 +++++++++++++++++++++++++++++++++++++++++++++++++ drivers/media/platform/vivid/vivid-meta-cap.h | 29 +++++++ drivers/media/platform/vivid/vivid-meta-out.c | 174 ++++++++++++++++++++++++++++++++++++++++++ drivers/media/platform/vivid/vivid-meta-out.h | 25 ++++++ drivers/media/platform/vivid/vivid-vid-cap.c | 5 +- drivers/media/platform/vivid/vivid-vid-out.c | 5 +- drivers/media/v4l2-core/v4l2-dev.c | 112 ++++++++++++++++----------- drivers/media/v4l2-core/v4l2-ioctl.c | 17 ++++- include/uapi/linux/videodev2.h | 1 + 17 files changed, 965 insertions(+), 66 deletions(-) create mode 100644 Documentation/media/uapi/v4l/pixfmt-meta-vivid.rst create mode 100644 drivers/media/platform/vivid/vivid-meta-cap.c create mode 100644 drivers/media/platform/vivid/vivid-meta-cap.h create mode 100644 drivers/media/platform/vivid/vivid-meta-out.c create mode 100644 drivers/media/platform/vivid/vivid-meta-out.h