mbox series

[v3,0/2] This patchset add read-only(Ro) request for capture queue

Message ID 20200701093522.8521-1-yunfei.dong@mediatek.com (mailing list archive)
Headers show
Series This patchset add read-only(Ro) request for capture queue | expand

Message

Yunfei Dong July 1, 2020, 9:35 a.m. UTC
Hello,

User driver need to get HDR10+ information for each capture buffer;
For some encoder cases, user driver need to get encoded message for
each frame. So add support read-only(Ro) request for capture queue.

There is no upstream driver to use this feature at now, but we are
developing internal driver to use it. If it is ready, we will try to
upstream vdec/venc driver based on this feature.

==============
Introduction
==============

Ro request mean that user driver just can get ext ctrls, set ext ctrls
is not not allowed. Ro Request also can be used in output queue.

Add param ro_requests in struct v4l2_ctrl_handler mean that all CID ctrls
belong to this ctrl handler is read only. Add param ro_ctrl_handler in
struct v4l2_fh used for Ro request.

Add param supports_ro_requests in struct vb2_queue present that capture or
output queue use Ro request.

When set/get ext ctrls, will check whether current CID ctrls is ro ctrls
or not using function v4l2_check_ro_ext_ctrls().

================
Changes in v3
================
-change cover-letter message
-change commit message for patch 02/02
-add sanity check in vb2_core_queue_init()

Yunfei Dong (2):
  media: v4l UAPI: add V4L2_BUF_CAP_SUPPORTS_RO_REQUESTS
  media: v4l: Add Ro request api for capture queue

 .../media/v4l/vidioc-reqbufs.rst              |   4 +
 .../media/common/videobuf2/videobuf2-core.c   |   3 +
 .../media/common/videobuf2/videobuf2-v4l2.c   |   7 ++
 drivers/media/mc/mc-request.c                 |  10 +-
 drivers/media/v4l2-core/v4l2-ctrls.c          | 107 +++++++++++++++---
 drivers/media/v4l2-core/v4l2-ioctl.c          |  22 ++++
 drivers/media/v4l2-core/v4l2-mem2mem.c        |  19 ++--
 include/media/v4l2-ctrls.h                    |  22 +++-
 include/media/v4l2-fh.h                       |   2 +
 include/media/videobuf2-core.h                |   2 +
 include/uapi/linux/videodev2.h                |   1 +
 11 files changed, 161 insertions(+), 38 deletions(-)