Linux Media Controller development
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Sakari Ailus <sakari.ailus@linux.intel.com>
Cc: "Jacopo Mondi" <jacopo.mondi@ideasonboard.com>,
	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>,
	"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 v5 04/10] media: imx219: Make control handler ops for PIXEL_RATE NULL
Date: Mon, 8 Jun 2026 13:27:55 +0300	[thread overview]
Message-ID: <20260608102755.GF772117@killaraus.ideasonboard.com> (raw)
In-Reply-To: <aiaXotTu4l4ZWzkd@kekkonen.localdomain>

On Mon, Jun 08, 2026 at 01:21:22PM +0300, Sakari Ailus wrote:
> On Mon, Jun 08, 2026 at 11:24:26AM +0300, Laurent Pinchart wrote:
> > On Mon, Jun 08, 2026 at 11:14:32AM +0300, Sakari Ailus wrote:
> > > On Mon, Jun 08, 2026 at 11:03:38AM +0300, Laurent Pinchart wrote:
> > > > On Mon, Jun 08, 2026 at 09:53:17AM +0200, Jacopo Mondi wrote:
> > > > > Hi Laurent
> > > > >   sorry if I reply in place of Sakari but I got this fresh
> > > > 
> > > > Thanks :-)
> > > > 
> > > > > On Mon, Jun 08, 2026 at 10:36:53AM +0300, Laurent Pinchart wrote:
> > > > > > On Mon, Jun 08, 2026 at 12:53:50AM +0300, Sakari Ailus wrote:
> > > > > > > The PIXEL_RATE control exists to convey the value to the userspace and has
> > > > > > > no configuration that would need to be programmed to the sensor. Make the
> > > > > > > control handler ops for the PIXEL_RATE control NULL and avoid a warning
> > > > > > > (as well as returning an error) from the driver.
> > > > > >
> > > > > > I thought the standard way to handle pixel rate being read only was to
> > > > > > set the V4L2_CTRL_FLAG_READ_ONLY flag, like we do for e.g.
> > > > > > V4L2_CID_LINK_FREQ. Is that not correct ?
> > > > > 
> > > > > PIXEL_RATE is RO by default
> > > > > 
> > > > > drivers/media/v4l2-core/v4l2-ctrls-defs.c:      case V4L2_CID_PIXEL_RATE:
> > > > > drivers/media/v4l2-core/v4l2-ctrls-defs.c-              *type = V4L2_CTRL_TYPE_INTEGER64;
> > > > > drivers/media/v4l2-core/v4l2-ctrls-defs.c-              *flags |= V4L2_CTRL_FLAG_READ_ONLY;
> > > > > drivers/media/v4l2-core/v4l2-ctrls-defs.c-              break;
> > > > > 
> > > > > The purpose of setting the ctrl_ops member to NULL is to avoid having
> > > > > to handle RO controls in the driver implementation of .s_ctrl().
> > > > 
> > > > Shouldn't the V4L2 control framework avoid .s_ctrl() calls for read-only
> > > > controls ? I thought it did already.
> > > 
> > > The control may be read-only on the UAPI but the driver could still do
> > > something about it in its s_ctrl() callback. I don't know if any driver
> > > depends on this though.
> > 
> > It seems to be one of the many areas where control handling should be
> > simplified for drivers.
> > 
> > In any case, the imx219 driver creates the V4L2_CID_LINK_FREQ control
> > with a non-NULL ops pointer, sets the V4L2_CTRL_FLAG_READ_ONLY flag, and
> > does not handle V4L2_CID_LINK_FREQ in imx219_set_ctrl(). If there's an
> > issue for V4L2_CID_PIXEL_RATE there is also an issue for
> > V4L2_CID_LINK_FREQ.
> 
> The ops should be set to NULL for link_freq as well.
> 
> > Maybe the best short term fix would be to drop the dev_info() in the
> > default case of the ctrl->id switch in imx219_set_ctrl() ?
> 
> Any reason why not to set ops NULL instead?

Because that seems to be a hack. Drivers shouldn't have to set a NULL
ops pointer for read-only controls, when there's already a read-only
flag. I'd like to simplify the code on the driver side and handle this
in the control framework, not adding yet another arcane rule that most
driver authors will not be aware of.

-- 
Regards,

Laurent Pinchart

  reply	other threads:[~2026-06-08 10:27 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-06-07 21:53 [PATCH v5 00/10] Metadata series preparation Sakari Ailus
2026-06-07 21:53 ` [PATCH v5 01/10] media: Documentation: Improve pixel rate calculation documentation Sakari Ailus
2026-06-07 21:53 ` [PATCH v5 02/10] media: imx219: Scale the vblank limits according to rate_factor Sakari Ailus
2026-06-08  7:26   ` Laurent Pinchart
2026-06-07 21:53 ` [PATCH v5 03/10] media: imx219: Account rate_factor in setting upper exposure limit Sakari Ailus
2026-06-07 22:05   ` sashiko-bot
2026-06-08  9:06   ` Laurent Pinchart
2026-06-08 13:44     ` Sakari Ailus
2026-06-07 21:53 ` [PATCH v5 04/10] media: imx219: Make control handler ops for PIXEL_RATE NULL Sakari Ailus
2026-06-08  7:36   ` Laurent Pinchart
2026-06-08  7:53     ` Jacopo Mondi
2026-06-08  8:03       ` Laurent Pinchart
2026-06-08  8:14         ` Sakari Ailus
2026-06-08  8:24           ` Laurent Pinchart
2026-06-08 10:21             ` Sakari Ailus
2026-06-08 10:27               ` Laurent Pinchart [this message]
2026-06-08 13:47                 ` Sakari Ailus
2026-06-08 14:42                   ` Laurent Pinchart
2026-06-07 21:53 ` [PATCH v5 05/10] media: imx219: Rename "binning" as "bin_hv" in imx219_set_pad_format Sakari Ailus
2026-06-07 21:53 ` [PATCH v5 06/10] media: imx219: Fix vertical blanking and exposure for analogue binning Sakari Ailus
2026-06-07 22:07   ` sashiko-bot
2026-06-08  6:58   ` Jacopo Mondi
2026-06-08  9:10     ` Laurent Pinchart
2026-06-08 14:07       ` Sakari Ailus
2026-06-08 10:31     ` Jai Luthra
2026-06-08 11:19       ` Jai Luthra
2026-06-07 21:53 ` [PATCH v5 07/10] media: Improve enable_streams and disable_streams documentation Sakari Ailus
2026-06-08  9:29   ` Laurent Pinchart
2026-06-08 14:28     ` Sakari Ailus
2026-06-07 21:53 ` [PATCH v5 08/10] media: v4l2-subdev: Move subdev client capabilities into a new struct Sakari Ailus
2026-06-08  9:34   ` Laurent Pinchart
2026-06-08 14:35     ` Sakari Ailus
2026-06-07 21:53 ` [PATCH v5 09/10] media: v4l2-subdev: Add v4l2_subdev_get_fmt_ci() Sakari Ailus
2026-06-08  7:48   ` Laurent Pinchart
2026-06-07 21:53 ` [PATCH v5 10/10] media: v4l2-subdev: Add struct v4l2_subdev_client_info pointer to pad ops Sakari Ailus
2026-06-08 10:16   ` Laurent Pinchart

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=20260608102755.GF772117@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox