From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Sakari Ailus <sakari.ailus@linux.intel.com>
Cc: linux-media@vger.kernel.org, hans@jjverkuil.nl,
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: Re: [PATCH v7 09/14] media: v4l2-subdev: Always call get_fmt() if set_fmt() is unavailable
Date: Mon, 10 Aug 2026 18:26:05 +0300 [thread overview]
Message-ID: <20260810152605.GA3011310@killaraus.ideasonboard.com> (raw)
In-Reply-To: <20260807122409.45807-10-sakari.ailus@linux.intel.com>
On Fri, Aug 07, 2026 at 03:24:04PM +0300, Sakari Ailus wrote:
> Many drivers implement set_fmt() pad op that simply returns the format
> just as get_fmt() would do, usually because the driver only supports a
> single one. As a driver should always implement set_fmt() either on its
> own or via get_fmt(), call get_fmt() in case set_fmt() isn't implemented
> by the driver. This allows removing a fair amount of boilerplate code as
> well as ensures that set_fmt() works whenever get_fmt() does.
>
> Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> ---
> drivers/media/v4l2-core/v4l2-subdev.c | 15 +++++++++++++--
> 1 file changed, 13 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/media/v4l2-core/v4l2-subdev.c b/drivers/media/v4l2-core/v4l2-subdev.c
> index f53bac995822..58e50d9442e7 100644
> --- a/drivers/media/v4l2-core/v4l2-subdev.c
> +++ b/drivers/media/v4l2-core/v4l2-subdev.c
> @@ -260,8 +260,19 @@ static int call_set_fmt(struct v4l2_subdev *sd,
> struct v4l2_subdev_state *state,
> struct v4l2_subdev_format *format)
> {
> - return do_subdev_call(sd, check_format(sd, state, format), pad, set_fmt,
> - state, format);
> + int ret;
> +
> + if (!sd->ops->pad->set_fmt && !sd->ops->pad->get_fmt)
> + return -ENOIOCTLCMD;
> +
> + ret = check_format(sd, state, format);
> + if (ret)
> + return ret;
> +
> + if (sd->ops->pad->set_fmt)
> + return sd->ops->pad->set_fmt(sd, state, format);
> +
> + return sd->ops->pad->get_fmt(sd, state, format);
> }
>
> static int check_which_pad_state(struct v4l2_subdev *sd,
--
Regards,
Laurent Pinchart
next prev parent reply other threads:[~2026-08-10 15:26 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-07 12:23 [PATCH v7 00/14] Metadata series preparation Sakari Ailus
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-10 15:10 ` Laurent Pinchart
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-10 15:13 ` Laurent Pinchart
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-10 13:12 ` Hans Verkuil
2026-08-10 15:26 ` Laurent Pinchart [this message]
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-10 13:13 ` Hans Verkuil
2026-08-10 15:30 ` Laurent Pinchart
2026-08-07 12:24 ` [PATCH v7 11/14] media: v4l2-subdev: Add v4l2_subdev_call_ci_state_{active,try} Sakari Ailus
2026-08-10 14:12 ` Hans Verkuil
2026-08-10 15:32 ` Laurent Pinchart
2026-08-11 7:20 ` Sakari Ailus
2026-08-11 8:38 ` Laurent Pinchart
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=20260810152605.GA3011310@killaraus.ideasonboard.com \
--to=laurent.pinchart@ideasonboard.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=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=sakari.ailus@linux.intel.com \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.