mbox series

[v2,0/6] v4l2-dev/ioctl: Add V4L2_CAP_IO_MC

Message ID 20191115235559.806041-1-niklas.soderlund+renesas@ragnatech.se (mailing list archive)
Headers show
Series v4l2-dev/ioctl: Add V4L2_CAP_IO_MC | expand

Message

Niklas Söderlund Nov. 15, 2019, 11:55 p.m. UTC
Hi,

First of this series is based on work done by Helen in 2017 [1], I have
synced with her that it's OK for me to takeover the work.

This series aims to reduce the amount of boiler plate code in video
device drivers who's inputs and/or outputs are controlled by the Media
Controller instead of the V4L2 API.

Patch 1/6 adds a default handler for VIDIOC_{G,S}_{INPUT,OUTPUT} as 
suggested by Hans in v1. This allows video drivers (disregarding of the 
V4L2_CAP_IO_MC flag) to remove callbacks for these operations if they 
only provide a single input/output.

Patch 3/6 adds the core parts of this change by adding a new video
device capability flag V4L2_CAP_IO_MC which if set provides helper
implementations for the enum inputs and outputs ioctrls freeing the 
video device driver from the need to implement them.

Patch 2/6, 3/6, 5/6 and 6/6 converts the R-Car VIN and Intel IPU3 
drivers to use the new default handlers  and flag and delete the now 
redundant boiler plate code. I'm sure more video device drivers can make 
use of this new flag but as I can only test on these two platforms I 
have limited my changes to those.

1. https://patchwork.linuxtv.org/patch/41857/

Niklas Söderlund (6):
  v4l2-dev/ioctl: Add default handlers for VIDIOC_{G,S}_{INPUT,OUTPUT}
  rcar-vin: Use default VIDIOC_{G,S}_{INPUT,OUTPUT} handler
  staging/intel-ipu3: Use default VIDIOC_{G,S}_{INPUT,OUTPUT} handler
  v4l2-dev/ioctl: Add V4L2_CAP_IO_MC
  rcar-vin: Make use of V4L2_CAP_IO_MC
  staging/intel-ipu3: Make use of V4L2_CAP_IO_MC

 .../media/uapi/v4l/vidioc-querycap.rst        |  3 +
 .../media/videodev2.h.rst.exceptions          |  1 +
 drivers/media/platform/rcar-vin/rcar-v4l2.c   | 32 +-------
 drivers/media/v4l2-core/v4l2-dev.c            | 18 +++--
 drivers/media/v4l2-core/v4l2-ioctl.c          | 80 ++++++++++++++++++-
 drivers/staging/media/ipu3/ipu3-v4l2.c        | 60 +-------------
 include/uapi/linux/videodev2.h                |  2 +
 7 files changed, 97 insertions(+), 99 deletions(-)