public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 0/8] media: v4l2-subdev: Improve frame interval handling
@ 2023-12-08 18:14 Laurent Pinchart
  2023-12-08 18:16 ` [PATCH v4 1/8] media: v4l: subdev: Move out subdev state lock macros outside CONFIG_MEDIA_CONTROLLER Laurent Pinchart
                   ` (7 more replies)
  0 siblings, 8 replies; 23+ messages in thread
From: Laurent Pinchart @ 2023-12-08 18:14 UTC (permalink / raw)
  To: linux-media
  Cc: Akinobu Mita, Andrzej Hajda, Daniel Scally, Hans Verkuil,
	Hans de Goede, Jacopo Mondi, Jonathan Hunter, Kieran Bingham,
	Lars-Peter Clausen, Leon Luo, Luca Ceresoli,
	Mauro Carvalho Chehab, Niklas Söderlund, Paul Elder,
	Pavel Machek, Philipp Zabel, Ricardo Ribalda, Rui Miguel Silva,
	Sakari Ailus, Sowjanya Komatineni, Steve Longerbeam,
	Sylwester Nawrocki, Thierry Reding, Tomi Valkeinen, linux-tegra

Hello,

This patch series improves frame interval handling in the V4L2 subdev
in-kernel and userspace APIs.

Frame interval are exposed to userspace on pads and streams, but the
frame interval handling is currently implemented through a v4l2_subdev
video operation, without involving the subdev state. This makes frame
intervals a second class citizen compared to formats and selection
rectangles.

Patch 1/8 is a preparatory fix that Tomi posted today, and on which this
series depends. I've included here for completeness.

Patch 2/8 then starts the work by addressing the first issue, namely the
frame interval operations being video ops. This requires touching all
the drivers using frame intervals.

Patch 3/8 adds a 'which' field to the subdev frame interval userspace
API, allowing frame intervals to be tried the same way formats and
selection rectangles can. Again, the same drivers need to be touched to
preserve their current behaviour.

Patch 4/8 adds support for storing the frame interval in the subdev
state, alongside the formats and selection rectangles, with similar
accessors and helper functions.

Patches 5/8 to 7/8 address small issues in the subdev uAPI documentation
that were raised during review of v2 or discovered when working on v3.

Finally, patch 8/8 demonstrates how this is used in drivers, with the
thp7312 driver serving as an example.

The series is based on the latest stage master branch.

Given the large number of drivers that this series touches, I would like
to get it merged in v6.8 without too much delay to avoid rebasing.

Laurent Pinchart (7):
  media: v4l2-subdev: Turn .[gs]_frame_interval into pad operations
  media: v4l2-subdev: Add which field to struct
    v4l2_subdev_frame_interval
  media: v4l2-subdev: Store frame interval in subdev state
  media: docs: uAPI: Clarify error documentation for invalid 'which'
    value
  media: docs: uAPI: Expand error documentation for invalid 'which'
    value
  media: docs: uAPI: Fix documentation of 'which' field for routing
    ioctls
  media: i2c: thp7312: Store frame interval in subdev state

Tomi Valkeinen (1):
  media: v4l: subdev: Move out subdev state lock macros outside
    CONFIG_MEDIA_CONTROLLER

 .../v4l/vidioc-subdev-enum-frame-interval.rst |   9 +-
 .../v4l/vidioc-subdev-enum-frame-size.rst     |   7 +-
 .../v4l/vidioc-subdev-enum-mbus-code.rst      |   7 +-
 .../media/v4l/vidioc-subdev-g-client-cap.rst  |   5 +
 .../media/v4l/vidioc-subdev-g-crop.rst        |   7 +-
 .../media/v4l/vidioc-subdev-g-fmt.rst         |   5 +-
 .../v4l/vidioc-subdev-g-frame-interval.rst    |  20 +-
 .../media/v4l/vidioc-subdev-g-routing.rst     |   7 +-
 .../media/v4l/vidioc-subdev-g-selection.rst   |   7 +-
 drivers/media/i2c/adv7180.c                   |  10 +-
 drivers/media/i2c/et8ek8/et8ek8_driver.c      |  12 +-
 drivers/media/i2c/imx214.c                    |  12 +-
 drivers/media/i2c/imx274.c                    |  54 ++--
 drivers/media/i2c/max9286.c                   |  20 +-
 drivers/media/i2c/mt9m111.c                   |  20 +-
 drivers/media/i2c/mt9m114.c                   |  20 +-
 drivers/media/i2c/mt9v011.c                   |  24 +-
 drivers/media/i2c/mt9v111.c                   |  22 +-
 drivers/media/i2c/ov2680.c                    |  10 +-
 drivers/media/i2c/ov5640.c                    |  22 +-
 drivers/media/i2c/ov5648.c                    |  62 ++---
 drivers/media/i2c/ov5693.c                    |  10 +-
 drivers/media/i2c/ov6650.c                    |  22 +-
 drivers/media/i2c/ov7251.c                    |  12 +-
 drivers/media/i2c/ov7670.c                    |  22 +-
 drivers/media/i2c/ov772x.c                    |  20 +-
 drivers/media/i2c/ov7740.c                    |  40 ++-
 drivers/media/i2c/ov8865.c                    |  54 ++--
 drivers/media/i2c/ov9650.c                    |  20 +-
 drivers/media/i2c/s5c73m3/s5c73m3-core.c      |  20 +-
 drivers/media/i2c/s5k5baf.c                   |  26 +-
 drivers/media/i2c/thp7312.c                   | 160 ++++++------
 drivers/media/i2c/tvp514x.c                   |  33 +--
 drivers/media/usb/em28xx/em28xx-video.c       |   6 +-
 drivers/media/v4l2-core/v4l2-common.c         |   8 +-
 drivers/media/v4l2-core/v4l2-subdev.c         | 130 +++++++---
 .../media/atomisp/i2c/atomisp-gc0310.c        |  10 +-
 .../media/atomisp/i2c/atomisp-gc2235.c        |  10 +-
 .../media/atomisp/i2c/atomisp-mt9m114.c       |  10 +-
 .../media/atomisp/i2c/atomisp-ov2722.c        |  10 +-
 .../staging/media/atomisp/pci/atomisp_cmd.c   |   4 +-
 .../staging/media/atomisp/pci/atomisp_ioctl.c |   4 +-
 drivers/staging/media/imx/imx-ic-prp.c        |  20 +-
 drivers/staging/media/imx/imx-ic-prpencvf.c   |  20 +-
 drivers/staging/media/imx/imx-media-capture.c |   6 +-
 drivers/staging/media/imx/imx-media-csi.c     |  20 +-
 drivers/staging/media/imx/imx-media-vdic.c    |  20 +-
 drivers/staging/media/tegra-video/csi.c       |  12 +-
 include/media/v4l2-common.h                   |   4 +-
 include/media/v4l2-subdev.h                   | 231 +++++++++++-------
 include/uapi/linux/v4l2-subdev.h              |  15 +-
 51 files changed, 815 insertions(+), 526 deletions(-)


base-commit: e55a9482888da73eeadde5f13ef8bafce68a38ed
-- 
Regards,

Laurent Pinchart


^ permalink raw reply	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2023-12-13 10:14 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-08 18:14 [PATCH v4 0/8] media: v4l2-subdev: Improve frame interval handling Laurent Pinchart
2023-12-08 18:16 ` [PATCH v4 1/8] media: v4l: subdev: Move out subdev state lock macros outside CONFIG_MEDIA_CONTROLLER Laurent Pinchart
2023-12-11  8:36   ` Hans Verkuil
2023-12-08 18:16 ` [PATCH v4 2/8] media: v4l2-subdev: Turn .[gs]_frame_interval into pad operations Laurent Pinchart
2023-12-13 10:01   ` Luca Ceresoli
2023-12-08 18:16 ` [PATCH v4 3/8] media: v4l2-subdev: Add which field to struct v4l2_subdev_frame_interval Laurent Pinchart
2023-12-09  5:55   ` Mauro Carvalho Chehab
2023-12-09 11:11     ` Laurent Pinchart
2023-12-11  8:59       ` Hans Verkuil
2023-12-11 11:53         ` Mauro Carvalho Chehab
2023-12-11 12:25           ` Hans Verkuil
2023-12-11 13:21             ` Mauro Carvalho Chehab
2023-12-11 15:07               ` Laurent Pinchart
2023-12-11 15:27                 ` Hans Verkuil
2023-12-11 15:42                   ` Laurent Pinchart
2023-12-11 15:48                     ` Laurent Pinchart
2023-12-11  8:39   ` Hans Verkuil
2023-12-13 10:14   ` Luca Ceresoli
2023-12-08 18:16 ` [PATCH v4 4/8] media: v4l2-subdev: Store frame interval in subdev state Laurent Pinchart
2023-12-08 18:16 ` [PATCH v4 5/8] media: docs: uAPI: Clarify error documentation for invalid 'which' value Laurent Pinchart
2023-12-08 18:16 ` [PATCH v4 6/8] media: docs: uAPI: Expand " Laurent Pinchart
2023-12-08 18:16 ` [PATCH v4 7/8] media: docs: uAPI: Fix documentation of 'which' field for routing ioctls Laurent Pinchart
2023-12-08 18:16 ` [PATCH v4 8/8] media: i2c: thp7312: Store frame interval in subdev state Laurent Pinchart

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox