Linux Media Controller development
 help / color / mirror / Atom feed
From: Sakari Ailus <sakari.ailus@linux.intel.com>
To: linux-media@vger.kernel.org
Cc: hans@jjverkuil.nl, laurent.pinchart@ideasonboard.com,
	Prabhakar <prabhakar.csengg@gmail.com>,
	"Kate Hsuan" <hpa@redhat.com>,
	"Dave Stevenson" <dave.stevenson@raspberrypi.com>,
	"Tommaso Merciai" <tomm.merciai@gmail.com>,
	"Benjamin Mugnier" <benjamin.mugnier@foss.st.com>,
	"Sylvain Petinot" <sylvain.petinot@foss.st.com>,
	"Christophe JAILLET" <christophe.jaillet@wanadoo.fr>,
	"Julien Massot" <julien.massot@collabora.com>,
	"Naushir Patuck" <naush@raspberrypi.com>,
	"Yan, Dongcheng" <dongcheng.yan@intel.com>,
	"Stefan Klug" <stefan.klug@ideasonboard.com>,
	"Mirela Rabulea" <mirela.rabulea@nxp.com>,
	"André Apitzsch" <git@apitzsch.eu>,
	"Heimir Thor Sverrisson" <heimir.sverrisson@gmail.com>,
	"Kieran Bingham" <kieran.bingham@ideasonboard.com>,
	"Mehdi Djait" <mehdi.djait@linux.intel.com>,
	"Ricardo Ribalda Delgado" <ribalda@kernel.org>,
	"Hans de Goede" <hansg@kernel.org>,
	"Jacopo Mondi" <jacopo.mondi@ideasonboard.com>,
	"Tomi Valkeinen" <tomi.valkeinen@ideasonboard.com>,
	"David Plowman" <david.plowman@raspberrypi.com>,
	"Yu, Ong Hock" <ong.hock.yu@intel.com>,
	"Ng, Khai Wen" <khai.wen.ng@intel.com>,
	"Jai Luthra" <jai.luthra@ideasonboard.com>,
	"Rishikesh Donadkar" <r-donadkar@ti.com>
Subject: [PATCH v7 00/14] Metadata series preparation
Date: Fri,  7 Aug 2026 15:23:55 +0300	[thread overview]
Message-ID: <20260807122409.45807-1-sakari.ailus@linux.intel.com> (raw)

Hi folks,

This smallish set contains patches that prepare for merging the metadata
series.

These patches have been out for review for quite a long time so I intend
to merge these early, once we have the next rc1 merged in the Media tree.
Before doing so however, I'd like to have reviews for the v4l2-subdev
changes that haven't been acked yet.

There are simple cleanups but also a noteworthy change: the addition of
the new struct v4l2_subdev_client_info struct to the set_fmt,
get_selection and set_selection pad operation arguments.

The series now begins with a set of imx219 patches, fixes and cleanups
accrued during the conversion of the imx219 driver to use the common raw
sensor model. I wonder if all these should be backported.

The new struct v4l2_subdev_client_info enables passing around file handler
specific client capability information, which is used to differentiate
UAPI between existing users and those that are aware of the new common raw
sensor model. This is effectively required if we want to add support for
the new model to existing raw sensor drivers: the new model is in a direct
conflict with how the imx219 driver in particular worked before the common
raw sensor model.

There still needs to be a single driver internal state, the different
UAPIs simply offer a different view to that state. The get_fmt() pad op
does not have the client_info argument as the get_fmt() is called by other
drivers inside the kernel so there's no concept of "client info" there nor
the format returned by the callback should have depended on it.

The Coccinelle spatch used to generate most of the driver changes in the
last patch is below, as is a Perl script to generate another Coccinelle
patch doing the rest of the job:

caps.cocci
------------------8<----------------------
@ fmt @
identifier a1, a2, a3;
identifier fn =~ ".*_set.*";

@@

  fn(struct v4l2_subdev *a1,
+ const struct v4l2_subdev_client_info *ci,
  struct v4l2_subdev_state *a2, struct v4l2_subdev_format *a3) {...}

@ sel @
identifier a1, a2, a3;
identifier fn2;

@@

  fn2(struct v4l2_subdev *a1,
+ const struct v4l2_subdev_client_info *ci,
  struct v4l2_subdev_state *a2, struct v4l2_subdev_selection *a3) {...}

@ fmt_call @
expression a1, a2, a3;
identifier fmt.fn;
@@

  fn(a1
+ , NULL
  , a2, a3);

@ fmt_call2 @
expression a1, a2, a3;
identifier fmt.fn;
@@

  return fn(a1
+ , NULL
  , a2, a3);


@ fmt_call3 @
expression ret, a1, a2, a3;
identifier fmt.fn;

@@

  ret = fn(a1
+ , NULL
  , a2, a3);

@ fmt_call4 @
expression a1, a2, a3;
identifier sel.fn2;
@@

  fn2(a1
+ , NULL
  , a2, a3);

@ fmt_call5 @
expression a1, a2, a3;
identifier sel.fn2;
@@

  return fn2(a1
+ , NULL
  , a2, a3);


@ fmt_call6 @
expression ret, a1, a2, a3;
identifier sel.fn2;

@@

  ret = fn2(a1
+ , NULL
  , a2, a3);

------------------8<----------------------

mk-caps2.pl
------------------8<----------------------
#!/usr/bin/perl -w

my @prefix = (
	"(void)",
	"",
	"ret = ",
	"return "
);

my $state_args = [
	[ "sd", "state", "fmt" ]
];

my $pad_active_args = [
	#[ "sd", "pad", "get_fmt", "fmt" ],
	[ "sd", "pad", "set_fmt", "fmt" ],
	[ "sd", "pad", "get_selection", "fmt" ],
	[ "sd", "pad", "set_selection", "fmt" ],
];

my $pad_args = [
	#[ "sd", "pad", "get_fmt", "state", "fmt" ],
	[ "sd", "pad", "set_fmt", "state", "fmt" ],
	[ "sd", "pad", "get_selection", "state", "fmt" ],
	[ "sd", "pad", "set_selection", "state", "fmt" ],
];

my $group_args = [
	#[ "dev", "group", "pad", "get_fmt", "state", "fmt" ],
	[ "dev", "group", "pad", "set_fmt", "state", "fmt" ],
	[ "dev", "group", "pad", "get_selection", "state", "fmt" ],
	[ "dev", "group", "pad", "set_selection", "state", "fmt" ],
];

my %funcs = (
	# "function_name" => [ arg ref, new arg position from the end ],
	"v4l2_subdev_call" => { args => $pad_args, pos => 1 },
	"v4l2_device_call_all" => { args => $group_args, pos => 1 },
	#"v4l2_subdev_get_fmt" => { args => $state_args, pos => 1 },
	"sensor_call" => { args => $pad_args, pos => 1 },
	"saa_call_all" => { args => $pad_args, pos => 1 },
	"call_all" => { args => $pad_args, pos => 1 },
	"v4l2_subdev_call_state_active" => { args => $pad_active_args, newname => "v4l2_subdev_call_ci_state_active" },
);

my $rule;

foreach my $p (@prefix) {
	foreach my $f (keys %funcs) {
		my $aref = $funcs{$f};

		foreach my $i (@{$aref->{args}}) {
			my $newname = $aref->{newname};

			print "@ rule" . $rule++ . " @\n";
			print "symbol $f;\n";
			print map {
				((/_/ || /^pad$/) ?
				"symbol" : "expression") . " $_;\n";
			} @$i;
			my @pre = @$i;
			my @post = splice @pre, $#pre - ($aref->{pos} // 0);
			print "identifier ret;\n" if $p =~ "ret =";
			print "@@\n";
			if (! defined $newname) {
				print "  $p$f(" . join(", ", @pre) . "\n";
				print "+ , NULL\n";
				print "  , " . join(", ", @post) . ");\n";
			} else {
				print "  $p\n";
				print "- $f(\n";
				print "+ $newname(\n";
				print "  " . join(", ", (@pre, @post)) . ");\n";
			}
		}
	}
}
------------------8<----------------------

since v6:

- imx219: Drop the change of using fll_def of 1762 for a non-binned mode.
  Having an even value is only relevant for configurations binned by 2
  vertically (very special binning).

- Add v4l2_subdev_client_info *ci argument get_selection and set_fmt
  callbacks in imx355 and relevant changes for two newly added drivers
  (imx471 and imx678).

- Introduce check_which_pad_state() helper for checking arguments instead
  of using funky here-functions for the do_subdev_call() macro in
  v4l2-subdev.c.

- Call the client_caps field in struct v4l2_subdev_client_info caps; the
  client is already given in the name of the struct.

- Prepend the name of the v4l2_subdev_call_drop_fourth() macro with two
  underscores and so suggest it's for internal, or at least for unusual,
  use.

- Introduce a new patch "media: v4l2-subdev: Don't assign set_fmt where
  it's equivalent to get_fmt" to drop set_fmt pad op assignments where
  trivial.

- Rewrap the description of "media: v4l2-subdev: Move subdev client
  capabilities into a new struct".

since v5:

- Drop imx219 patches changing the vertical blanking margin and the
  removal of the rate factor.

- Introduce new patches for imx219 to fix exposure margin and set blanking
  control (both HBLANK and VBLANK) step.

- Add a wrapper to always call get_fmt() pad op if set_fmt() pad op isn't
  defined. To enable this, nove the ops NULL-ness check from sub-device
  call wrapper callers to the call wrappers themselves. Also drop the
  patch "media: v4l2-subdev: Add v4l2_subdev_get_fmt_ci()" as it is now
  redundant.

- Use client_info pointer whenever available (was often NULL in v5) even
  when not required, in mali-c55, bcm2835-unicam, ccs, mt9m001, camss-vfe,
  rzg2l and ti cal drivers.

- Separate the frame descriptor patches from the metadata patches --
  they'll need more time and likely will be merged later on.

since v4:

- Merge mergeable patches that have received acks in time.

- Drop the VALIDATE_LATE MC link flag from this set.

- Move the frame descriptor patches out of the set.

- Do not add the client_info argument to the get_fmt() pad op.

- Introduce v4l2_subdev_get_fmt_ci() which returns the pad format but uses
  the same arguments (i.e. also the client info argument) as the set_fmt()
  pad op.

- Call the VISIBLE area in v4 as ACTIVE_AREA (imx219 driver; patch
  merged).

- Set the pixel_rate control's ops to NULL (the control is read-only and
  not applied on device).

- Fix imx219 driver's limits for VBLANK, HBLANK and EXPOSURE controls.

- Postpone the patch bumping the STREAMS capability bit.

- Fix stopping streams documentation in patch "media: Improve
  enable_streams and disable_streams documentation".

since v3:

- Include the patch adding v4l2_subdev_get_frame_desc(); compared to the
  version posted earlier, this one uses get_fmt() pad op.

- Removed kernel-doc documentation from sub-device ops in drivers. These
  comments are redundant.

- Include v4l2_subdev_client_info changes for ov2732 and t4ka3 drivers.

- Fix setting media link flags.

- Fix the condition for skipping early validation (and doing it later).
  The old condition sometimes caused the link being validated too early.

since v2:

- Include imx219 driver fixes accrued during imx219 Common Raw Sensor
  Model support implementation. This includes fixes to control ranges and
  the removal of the rate_factor, among other things.

- Reword documentation of the VALIDATE_LATE link flag.

- Require that VALIDATE_LATE links sink (origin entity in this case) may
  have a single pad only.

- Drop the pipe argument from __media_pipeline_validate_one() as the
  function doesn't use it.

- Fix MUST_CONNECT flag validation for links that also have VALIDATE_LATE
  flag.

- Rename the macros to create wrapper functions, define one for "! defined
  CONFIG_MEDIA_CONTROLLER" case as well.

- Call v4l2_subdev_call_waive_fourth() v4l2_subdev_call_drop_fourth() now.

- Comment the link validation code a little better.

- Fix copying the routes in the routing cleanup patch (copy the same
  number of routes as before), rename the function doing it well. Make the
  new function copy_routes_state_to_routing() to take just routing and
  state arguments, for all callers have this information.

- Add a patch bumping the STREAMS sub-device capability bit and document
  that bit 0x2 is reserved.

since v1:

- Address compilation issues. I had only tested on arm64 previously.

- Introduce v4l2_subdev_call_ci_state_active(), to call pad ops with
  client info argument with active state. Getting around needing a new
  function doesn't seem easy (probably requires one more layer of
  indirection I'd like to do without).

Sakari Ailus (14):
  media: Documentation: Improve pixel rate calculation documentation
  media: imx219: Account rate_factor in setting upper exposure limit
  media: imx219: Account for rate_factor in control steps
  media: imx219: The horizontal blanking step is 8
  media: imx219: Rename "binning" as "bin_hv" in imx219_set_pad_format
  media: Improve enable_streams and disable_streams documentation
  media: v4l2-subdev: Move subdev client capabilities into a new struct
  media: v4l2-subdev: Move op check to sub-device op wrappers
  media: v4l2-subdev: Always call get_fmt() if set_fmt() is unavailable
  media: v4l2-subdev: Don't assign set_fmt where it's equivalent to
    get_fmt
  media: v4l2-subdev: Add v4l2_subdev_call_ci_state_{active,try}
  media: mt9m001: Pass sub-device state to set_selection() callback
  media: cvs: Drop comments on sub-device operations
  media: v4l2-subdev: Add struct v4l2_subdev_client_info pointer to pad
    ops

 Documentation/driver-api/media/tx-rx.rst      |   6 +-
 drivers/media/i2c/adv7170.c                   |   1 +
 drivers/media/i2c/adv7175.c                   |   1 +
 drivers/media/i2c/adv7180.c                   |   3 +-
 drivers/media/i2c/adv7183.c                   |   3 +-
 drivers/media/i2c/adv748x/adv748x-afe.c       |   1 +
 drivers/media/i2c/adv748x/adv748x-csi2.c      |   1 +
 drivers/media/i2c/adv748x/adv748x-hdmi.c      |   1 +
 drivers/media/i2c/adv7511-v4l2.c              |   1 +
 drivers/media/i2c/adv7604.c                   |   2 +
 drivers/media/i2c/adv7842.c                   |   1 +
 drivers/media/i2c/ak881x.c                    |   2 +-
 drivers/media/i2c/alvium-csi2.c               |   3 +
 drivers/media/i2c/ar0521.c                    |   1 +
 drivers/media/i2c/ccs/ccs-core.c              |  12 +-
 drivers/media/i2c/cvs/v4l2.c                  |  83 +--------
 drivers/media/i2c/cx25840/cx25840-core.c      |   1 +
 drivers/media/i2c/ds90ub913.c                 |   1 +
 drivers/media/i2c/ds90ub953.c                 |   1 +
 drivers/media/i2c/ds90ub960.c                 |   1 +
 drivers/media/i2c/et8ek8/et8ek8_driver.c      |   1 +
 drivers/media/i2c/gc0308.c                    |   1 +
 drivers/media/i2c/gc0310.c                    |   2 +-
 drivers/media/i2c/gc05a2.c                    |   4 +-
 drivers/media/i2c/gc08a3.c                    |   4 +-
 drivers/media/i2c/gc2145.c                    |   2 +
 drivers/media/i2c/hi556.c                     |   2 +
 drivers/media/i2c/hi846.c                     |   2 +
 drivers/media/i2c/hi847.c                     |   1 +
 drivers/media/i2c/imx111.c                    |   1 +
 drivers/media/i2c/imx208.c                    |   1 +
 drivers/media/i2c/imx214.c                    |   4 +-
 drivers/media/i2c/imx219.c                    |  42 +++--
 drivers/media/i2c/imx258.c                    |   2 +
 drivers/media/i2c/imx274.c                    |   3 +
 drivers/media/i2c/imx283.c                    |   2 +
 drivers/media/i2c/imx290.c                    |   4 +-
 drivers/media/i2c/imx296.c                    |   7 +-
 drivers/media/i2c/imx319.c                    |   1 +
 drivers/media/i2c/imx334.c                    |   3 +-
 drivers/media/i2c/imx335.c                    |   4 +-
 drivers/media/i2c/imx355.c                    |   4 +-
 drivers/media/i2c/imx412.c                    |   3 +-
 drivers/media/i2c/imx415.c                    |   4 +-
 drivers/media/i2c/imx471.c                    |   4 +-
 drivers/media/i2c/imx678.c                    |   2 +-
 drivers/media/i2c/isl7998x.c                  |   1 +
 drivers/media/i2c/lt6911uxe.c                 |   5 +-
 drivers/media/i2c/max9286.c                   |   1 +
 drivers/media/i2c/max96714.c                  |   1 +
 drivers/media/i2c/max96717.c                  |   1 +
 drivers/media/i2c/ml86v7667.c                 |   1 -
 drivers/media/i2c/mt9m001.c                   |   9 +-
 drivers/media/i2c/mt9m111.c                   |   3 +
 drivers/media/i2c/mt9m114.c                   |   6 +
 drivers/media/i2c/mt9p031.c                   |   3 +
 drivers/media/i2c/mt9t112.c                   |   3 +
 drivers/media/i2c/mt9v011.c                   |   1 +
 drivers/media/i2c/mt9v032.c                   |   3 +
 drivers/media/i2c/mt9v111.c                   |   1 +
 drivers/media/i2c/og01a1b.c                   |   3 +-
 drivers/media/i2c/og0ve1b.c                   |   3 +-
 drivers/media/i2c/os05b10.c                   |   2 +
 drivers/media/i2c/ov01a10.c                   |   3 +
 drivers/media/i2c/ov02a10.c                   |   3 +-
 drivers/media/i2c/ov02c10.c                   |   1 +
 drivers/media/i2c/ov02e10.c                   |   1 +
 drivers/media/i2c/ov08d10.c                   |   1 +
 drivers/media/i2c/ov08x40.c                   |   1 +
 drivers/media/i2c/ov13858.c                   |   1 +
 drivers/media/i2c/ov13b10.c                   |   1 +
 drivers/media/i2c/ov2640.c                    |   2 +
 drivers/media/i2c/ov2659.c                    |   1 +
 drivers/media/i2c/ov2680.c                    |   3 +
 drivers/media/i2c/ov2685.c                    |   2 +
 drivers/media/i2c/ov2732.c                    |   4 +-
 drivers/media/i2c/ov2735.c                    |   4 +-
 drivers/media/i2c/ov2740.c                    |   1 +
 drivers/media/i2c/ov4689.c                    |   2 +
 drivers/media/i2c/ov5640.c                    |   2 +
 drivers/media/i2c/ov5645.c                    |   4 +-
 drivers/media/i2c/ov5647.c                    |   2 +
 drivers/media/i2c/ov5648.c                    |   1 +
 drivers/media/i2c/ov5670.c                    |   2 +
 drivers/media/i2c/ov5675.c                    |   2 +
 drivers/media/i2c/ov5693.c                    |   3 +
 drivers/media/i2c/ov5695.c                    |   1 +
 drivers/media/i2c/ov6211.c                    |   3 +-
 drivers/media/i2c/ov64a40.c                   |   2 +
 drivers/media/i2c/ov7251.c                    |   4 +-
 drivers/media/i2c/ov7670.c                    |   1 +
 drivers/media/i2c/ov772x.c                    |   2 +
 drivers/media/i2c/ov7740.c                    |   1 +
 drivers/media/i2c/ov8856.c                    |   1 +
 drivers/media/i2c/ov8858.c                    |   3 +-
 drivers/media/i2c/ov8865.c                    |   2 +
 drivers/media/i2c/ov9282.c                    |   4 +-
 drivers/media/i2c/ov9640.c                    |   2 +
 drivers/media/i2c/ov9650.c                    |   1 +
 drivers/media/i2c/ov9734.c                    |   1 +
 drivers/media/i2c/rdacm20.c                   |   1 -
 drivers/media/i2c/rdacm21.c                   |   1 -
 drivers/media/i2c/rj54n1cb0c.c                |   3 +
 drivers/media/i2c/s5c73m3/s5c73m3-core.c      |   2 +
 drivers/media/i2c/s5k3m5.c                    |   4 +-
 drivers/media/i2c/s5k5baf.c                   |   3 +
 drivers/media/i2c/s5k6a3.c                    |   1 +
 drivers/media/i2c/s5kjn1.c                    |   4 +-
 drivers/media/i2c/saa6752hs.c                 |   1 +
 drivers/media/i2c/saa7115.c                   |   1 +
 drivers/media/i2c/saa717x.c                   |   1 +
 drivers/media/i2c/st-mipid02.c                |   1 +
 drivers/media/i2c/t4ka3.c                     |   3 +
 drivers/media/i2c/tc358743.c                  |   1 +
 drivers/media/i2c/tc358746.c                  |   1 +
 drivers/media/i2c/tda1997x.c                  |   1 +
 drivers/media/i2c/thp7312.c                   |   1 +
 drivers/media/i2c/tvp514x.c                   |   1 +
 drivers/media/i2c/tvp5150.c                   |   3 +-
 drivers/media/i2c/tvp7002.c                   |   1 +
 drivers/media/i2c/tw9900.c                    |   1 +
 drivers/media/i2c/tw9910.c                    |   2 +
 drivers/media/i2c/vd55g1.c                    |   4 +-
 drivers/media/i2c/vd56g3.c                    |   4 +-
 drivers/media/i2c/vgxy61.c                    |   4 +-
 drivers/media/pci/cobalt/cobalt-driver.c      |   8 +-
 drivers/media/pci/cobalt/cobalt-v4l2.c        |  10 +-
 drivers/media/pci/cx18/cx18-av-core.c         |   1 +
 drivers/media/pci/cx18/cx18-controls.c        |   2 +-
 drivers/media/pci/cx18/cx18-ioctl.c           |   2 +-
 drivers/media/pci/cx23885/cx23885-video.c     |   4 +-
 drivers/media/pci/intel/ipu3/ipu3-cio2.c      |   1 +
 drivers/media/pci/intel/ipu6/ipu6-isys-csi2.c |   2 +
 .../media/pci/intel/ipu6/ipu6-isys-subdev.c   |   1 +
 .../media/pci/intel/ipu6/ipu6-isys-subdev.h   |   1 +
 drivers/media/pci/intel/ivsc/mei_csi.c        |   1 +
 drivers/media/pci/ivtv/ivtv-controls.c        |   2 +-
 drivers/media/pci/ivtv/ivtv-ioctl.c           |   2 +-
 drivers/media/pci/saa7134/saa7134-empress.c   |   4 +-
 drivers/media/platform/amd/isp4/isp4_subdev.c |   1 +
 drivers/media/platform/amd/isp4/isp4_video.c  |   2 +-
 .../platform/amlogic/c3/isp/c3-isp-core.c     |   1 +
 .../platform/amlogic/c3/isp/c3-isp-resizer.c  |   3 +
 .../amlogic/c3/mipi-adapter/c3-mipi-adap.c    |   1 +
 .../amlogic/c3/mipi-csi2/c3-mipi-csi2.c       |   1 +
 .../platform/arm/mali-c55/mali-c55-isp.c      |   3 +
 .../platform/arm/mali-c55/mali-c55-resizer.c  |  15 +-
 .../platform/arm/mali-c55/mali-c55-tpg.c      |   1 +
 drivers/media/platform/atmel/atmel-isi.c      |   4 +-
 .../media/platform/broadcom/bcm2835-unicam.c  |   1 +
 drivers/media/platform/cadence/cdns-csi2rx.c  |   1 +
 drivers/media/platform/cadence/cdns-csi2tx.c  |   1 +
 drivers/media/platform/intel/pxa_camera.c     |   6 +-
 drivers/media/platform/marvell/mcam-core.c    |   4 +-
 .../platform/microchip/microchip-csi2dc.c     |   1 +
 .../platform/microchip/microchip-isc-scaler.c |   2 +
 drivers/media/platform/nxp/imx-mipi-csis.c    |   3 +-
 drivers/media/platform/nxp/imx7-media-csi.c   |   1 +
 .../platform/nxp/imx8-isi/imx8-isi-crossbar.c |   1 +
 .../platform/nxp/imx8-isi/imx8-isi-pipe.c     |   3 +
 drivers/media/platform/nxp/imx8mq-mipi-csi2.c |   1 +
 .../media/platform/qcom/camss/camss-csid.c    |   3 +-
 .../media/platform/qcom/camss/camss-csiphy.c  |   3 +-
 .../media/platform/qcom/camss/camss-ispif.c   |   3 +-
 drivers/media/platform/qcom/camss/camss-tpg.c |   3 +-
 drivers/media/platform/qcom/camss/camss-vfe.c |  12 +-
 .../media/platform/raspberrypi/rp1-cfe/csi2.c |   1 +
 .../platform/raspberrypi/rp1-cfe/pisp-fe.c    |   1 +
 drivers/media/platform/renesas/rcar-csi2.c    |   1 +
 .../media/platform/renesas/rcar-isp/csisp.c   |   1 +
 drivers/media/platform/renesas/renesas-ceu.c  |   7 +-
 .../platform/renesas/rzg2l-cru/rzg2l-csi2.c   |   3 +-
 .../platform/renesas/rzg2l-cru/rzg2l-ip.c     |   3 +-
 .../renesas/rzv2h-ivc/rzv2h-ivc-subdev.c      |   1 +
 drivers/media/platform/renesas/sh_vou.c       |   6 +-
 .../media/platform/renesas/vsp1/vsp1_brx.c    |   3 +
 .../media/platform/renesas/vsp1/vsp1_drm.c    |  18 +-
 .../media/platform/renesas/vsp1/vsp1_entity.c |   4 +-
 .../media/platform/renesas/vsp1/vsp1_entity.h |   1 +
 .../media/platform/renesas/vsp1/vsp1_histo.c  |   3 +
 .../media/platform/renesas/vsp1/vsp1_hsit.c   |   1 +
 .../media/platform/renesas/vsp1/vsp1_rwpf.c   |   3 +
 .../media/platform/renesas/vsp1/vsp1_sru.c    |   1 +
 .../media/platform/renesas/vsp1/vsp1_uds.c    |   1 +
 .../media/platform/renesas/vsp1/vsp1_uif.c    |   2 +
 .../media/platform/renesas/vsp1/vsp1_vspx.c   |   3 +-
 .../platform/rockchip/rkcif/rkcif-interface.c |   3 +
 .../platform/rockchip/rkisp1/rkisp1-csi.c     |   1 +
 .../platform/rockchip/rkisp1/rkisp1-isp.c     |   3 +
 .../platform/rockchip/rkisp1/rkisp1-resizer.c |   3 +
 .../samsung/exynos4-is/fimc-capture.c         |   8 +-
 .../platform/samsung/exynos4-is/fimc-isp.c    |   1 +
 .../platform/samsung/exynos4-is/fimc-lite.c   |   3 +
 .../platform/samsung/exynos4-is/mipi-csis.c   |   1 +
 .../samsung/s3c-camif/camif-capture.c         |   3 +
 .../platform/samsung/s3c-camif/camif-core.c   |   2 +-
 drivers/media/platform/st/stm32/stm32-csi.c   |   1 +
 drivers/media/platform/st/stm32/stm32-dcmi.c  |  10 +-
 .../st/stm32/stm32-dcmipp/dcmipp-byteproc.c   |   3 +
 .../st/stm32/stm32-dcmipp/dcmipp-input.c      |   1 +
 .../platform/sunxi/sun4i-csi/sun4i_v4l2.c     |   1 +
 .../sunxi/sun6i-csi/sun6i_csi_bridge.c        |   1 +
 .../sunxi/sun6i-mipi-csi2/sun6i_mipi_csi2.c   |   1 +
 .../sun8i_a83t_mipi_csi2.c                    |   1 +
 .../media/platform/synopsys/dw-mipi-csi2rx.c  |   1 +
 .../media/platform/ti/am437x/am437x-vpfe.c    |   2 +-
 drivers/media/platform/ti/cal/cal-camerarx.c  |   1 +
 drivers/media/platform/ti/cal/cal-video.c     |   4 +-
 .../platform/ti/j721e-csi2rx/j721e-csi2rx.c   |   1 +
 drivers/media/platform/ti/omap3isp/ispccdc.c  |   5 +-
 drivers/media/platform/ti/omap3isp/ispccp2.c  |   3 +-
 drivers/media/platform/ti/omap3isp/ispcsi2.c  |   3 +-
 .../media/platform/ti/omap3isp/isppreview.c   |   5 +-
 .../media/platform/ti/omap3isp/ispresizer.c   |   5 +-
 drivers/media/platform/ti/omap3isp/ispvideo.c |   4 +-
 drivers/media/platform/ti/vpe/vip.c           |   4 +-
 drivers/media/platform/via/via-camera.c       |   4 +-
 drivers/media/platform/video-mux.c            |   1 +
 .../media/platform/xilinx/xilinx-csi2rxss.c   |   1 +
 drivers/media/platform/xilinx/xilinx-tpg.c    |   1 +
 .../media/test-drivers/vimc/vimc-debayer.c    |   1 +
 drivers/media/test-drivers/vimc/vimc-scaler.c |   3 +
 drivers/media/test-drivers/vimc/vimc-sensor.c |   1 +
 drivers/media/usb/cx231xx/cx231xx-417.c       |   2 +-
 drivers/media/usb/cx231xx/cx231xx-video.c     |   4 +-
 drivers/media/usb/dvb-usb/cxusb-analog.c      |   6 +-
 drivers/media/usb/em28xx/em28xx-camera.c      |   2 +-
 drivers/media/usb/go7007/go7007-v4l2.c        |   2 +-
 drivers/media/usb/go7007/s2250-board.c        |   1 +
 drivers/media/usb/pvrusb2/pvrusb2-hdw.c       |   2 +-
 drivers/media/v4l2-core/v4l2-subdev.c         | 163 ++++++++++++------
 .../media/atomisp/i2c/atomisp-gc2235.c        |   1 +
 .../media/atomisp/i2c/atomisp-ov2722.c        |   1 +
 .../staging/media/atomisp/pci/atomisp_cmd.c   |  16 +-
 .../staging/media/atomisp/pci/atomisp_csi2.c  |   1 +
 .../media/atomisp/pci/atomisp_subdev.c        |   3 +
 .../staging/media/atomisp/pci/atomisp_v4l2.c  |   8 +-
 drivers/staging/media/imx/imx-ic-prp.c        |   1 +
 drivers/staging/media/imx/imx-ic-prpencvf.c   |   1 +
 drivers/staging/media/imx/imx-media-csi.c     |   3 +
 drivers/staging/media/imx/imx-media-vdic.c    |   1 +
 drivers/staging/media/imx/imx6-mipi-csi2.c    |   1 +
 drivers/staging/media/ipu3/ipu3-v4l2.c        |   3 +
 drivers/staging/media/ipu7/ipu7-isys-csi2.c   |   2 +
 drivers/staging/media/ipu7/ipu7-isys-subdev.c |   1 +
 drivers/staging/media/ipu7/ipu7-isys-subdev.h |   1 +
 drivers/staging/media/max96712/max96712.c     |   1 -
 .../media/sunxi/sun6i-isp/sun6i_isp_proc.c    |   1 +
 drivers/staging/media/tegra-video/csi.c       |   1 +
 drivers/staging/media/tegra-video/vi.c        |  10 +-
 include/media/v4l2-subdev.h                   | 129 +++++++++++---
 251 files changed, 737 insertions(+), 322 deletions(-)

-- 
2.47.3


             reply	other threads:[~2026-08-07 12:24 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-08-07 12:23 Sakari Ailus [this message]
2026-08-07 12:23 ` [PATCH v7 01/14] media: Documentation: Improve pixel rate calculation documentation Sakari Ailus
2026-08-07 12:23 ` [PATCH v7 02/14] media: imx219: Account rate_factor in setting upper exposure limit Sakari Ailus
2026-08-07 12:23 ` [PATCH v7 03/14] media: imx219: Account for rate_factor in control steps Sakari Ailus
2026-08-07 12:23 ` [PATCH v7 04/14] media: imx219: The horizontal blanking step is 8 Sakari Ailus
2026-08-07 12:24 ` [PATCH v7 05/14] media: imx219: Rename "binning" as "bin_hv" in imx219_set_pad_format Sakari Ailus
2026-08-07 12:24 ` [PATCH v7 06/14] media: Improve enable_streams and disable_streams documentation Sakari Ailus
2026-08-07 12:24 ` [PATCH v7 07/14] media: v4l2-subdev: Move subdev client capabilities into a new struct Sakari Ailus
2026-08-07 12:24 ` [PATCH v7 08/14] media: v4l2-subdev: Move op check to sub-device op wrappers Sakari Ailus
2026-08-07 12:24 ` [PATCH v7 09/14] media: v4l2-subdev: Always call get_fmt() if set_fmt() is unavailable Sakari Ailus
2026-08-07 12:24 ` [PATCH v7 10/14] media: v4l2-subdev: Don't assign set_fmt where it's equivalent to get_fmt Sakari Ailus
2026-08-07 12:24 ` [PATCH v7 11/14] media: v4l2-subdev: Add v4l2_subdev_call_ci_state_{active,try} Sakari Ailus
2026-08-07 12:24 ` [PATCH v7 12/14] media: mt9m001: Pass sub-device state to set_selection() callback Sakari Ailus
2026-08-07 12:24 ` [PATCH v7 13/14] media: cvs: Drop comments on sub-device operations Sakari Ailus
2026-08-07 12:24 ` [PATCH v7 14/14] media: v4l2-subdev: Add struct v4l2_subdev_client_info pointer to pad ops Sakari Ailus

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260807122409.45807-1-sakari.ailus@linux.intel.com \
    --to=sakari.ailus@linux.intel.com \
    --cc=benjamin.mugnier@foss.st.com \
    --cc=christophe.jaillet@wanadoo.fr \
    --cc=dave.stevenson@raspberrypi.com \
    --cc=david.plowman@raspberrypi.com \
    --cc=dongcheng.yan@intel.com \
    --cc=git@apitzsch.eu \
    --cc=hans@jjverkuil.nl \
    --cc=hansg@kernel.org \
    --cc=heimir.sverrisson@gmail.com \
    --cc=hpa@redhat.com \
    --cc=jacopo.mondi@ideasonboard.com \
    --cc=jai.luthra@ideasonboard.com \
    --cc=julien.massot@collabora.com \
    --cc=khai.wen.ng@intel.com \
    --cc=kieran.bingham@ideasonboard.com \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=mehdi.djait@linux.intel.com \
    --cc=mirela.rabulea@nxp.com \
    --cc=naush@raspberrypi.com \
    --cc=ong.hock.yu@intel.com \
    --cc=prabhakar.csengg@gmail.com \
    --cc=r-donadkar@ti.com \
    --cc=ribalda@kernel.org \
    --cc=stefan.klug@ideasonboard.com \
    --cc=sylvain.petinot@foss.st.com \
    --cc=tomi.valkeinen@ideasonboard.com \
    --cc=tomm.merciai@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox