Linux LED subsystem development
 help / color / mirror / Atom feed
From: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
To: Richard Leitner <richard.leitner@linux.dev>
Cc: Lee Jones <lee@kernel.org>,
	Sakari Ailus <sakari.ailus@linux.intel.com>,
	Dave Stevenson <dave.stevenson@raspberrypi.com>,
	Mauro Carvalho Chehab <mchehab@kernel.org>,
	Pavel Machek <pavel@kernel.org>,
	linux-media@vger.kernel.org, linux-kernel@vger.kernel.org,
	linux-leds@vger.kernel.org, Hans Verkuil <hverkuil@kernel.org>
Subject: Re: [PATCH v7 02/10] media: v4l2-flash: add support for flash/strobe duration
Date: Mon, 8 Sep 2025 17:39:01 +0200	[thread overview]
Message-ID: <20250908153219.GI26062@pendragon.ideasonboard.com> (raw)
In-Reply-To: <2u6jncxsvlzbs5d6uhxslxnyvtidagspb3rfxsnhm3beb5saa5@ctq2cftpcwry>

On Mon, Sep 08, 2025 at 04:15:48PM +0200, Richard Leitner wrote:
> On Sun, Sep 07, 2025 at 09:05:20PM +0200, Laurent Pinchart wrote:
> > On Mon, Sep 01, 2025 at 05:05:07PM +0200, Richard Leitner wrote:
> > > Add support for the new V4L2_CID_FLASH_DURATION control to the v4l2
> > > flash led class.
> > 
> > I don't think this is a good idea, based on the reasoning explained in
> > the review of 01/10. If V4L2_CID_FLASH_DURATION is meant to indicate the
> > duration of the external flash/strobe pulse signal, it should be
> > implemented by the source of the signal, and for external strobe mode
> > only. The flash controller, which receives the flash/strobe pulse,
> > should implement the timeout control.
> 
> You're right. From that point of view it makes no sense to have this
> functions in v4l2-flash-led-class.c. I'll move the implementation to
> ov9282 for v9.
> 
> If I do so I guess the patch already merged by Lee needs reverting?
> 6a09ae828198 (leds: flash: Add support for flash/strobe duration, 2025-05-07)
> Should the revert be included in this series then?

The revert can be merged separately. Let's first finalize this series,
and then send the revert, just in case over changes to the LED API may
be needed.

> > > Signed-off-by: Richard Leitner <richard.leitner@linux.dev>
> > > ---
> > >  drivers/media/v4l2-core/v4l2-flash-led-class.c | 25 +++++++++++++++++++++++++
> > >  1 file changed, 25 insertions(+)
> > > 
> > > diff --git a/drivers/media/v4l2-core/v4l2-flash-led-class.c b/drivers/media/v4l2-core/v4l2-flash-led-class.c
> > > index 355595a0fefac72c2f6941a30fa430d37dbdccfe..875d56d7190592c1e5ab7acd617b76dcec8792da 100644
> > > --- a/drivers/media/v4l2-core/v4l2-flash-led-class.c
> > > +++ b/drivers/media/v4l2-core/v4l2-flash-led-class.c
> > > @@ -29,6 +29,7 @@ enum ctrl_init_data_id {
> > >  	INDICATOR_INTENSITY,
> > >  	FLASH_TIMEOUT,
> > >  	STROBE_SOURCE,
> > > +	FLASH_DURATION,
> > >  	/*
> > >  	 * Only above values are applicable to
> > >  	 * the 'ctrls' array in the struct v4l2_flash.
> > > @@ -298,6 +299,12 @@ static int v4l2_flash_s_ctrl(struct v4l2_ctrl *c)
> > >  		 * microamperes for flash intensity units.
> > >  		 */
> > >  		return led_set_flash_brightness(fled_cdev, c->val);
> > > +	case V4L2_CID_FLASH_DURATION:
> > > +		/*
> > > +		 * No conversion is needed as LED Flash class also uses
> > > +		 * microseconds for flash duration units.
> > > +		 */
> > > +		return led_set_flash_duration(fled_cdev, c->val);
> > >  	}
> > >  
> > >  	return -EINVAL;
> > > @@ -424,6 +431,14 @@ static void __fill_ctrl_init_data(struct v4l2_flash *v4l2_flash,
> > >  		ctrl_cfg->flags = V4L2_CTRL_FLAG_VOLATILE |
> > >  				  V4L2_CTRL_FLAG_EXECUTE_ON_WRITE;
> > >  	}
> > > +
> > > +	/* Init FLASH_DURATION ctrl data */
> > > +	if (has_flash_op(fled_cdev, duration_set)) {
> > > +		ctrl_init_data[FLASH_DURATION].cid = V4L2_CID_FLASH_DURATION;
> > > +		ctrl_cfg = &ctrl_init_data[FLASH_DURATION].config;
> > > +		__lfs_to_v4l2_ctrl_config(&fled_cdev->duration, ctrl_cfg);
> > > +		ctrl_cfg->id = V4L2_CID_FLASH_DURATION;
> > > +	}
> > >  }
> > >  
> > >  static int v4l2_flash_init_controls(struct v4l2_flash *v4l2_flash,
> > > @@ -543,6 +558,16 @@ static int __sync_device_with_v4l2_controls(struct v4l2_flash *v4l2_flash)
> > >  			return ret;
> > >  	}
> > >  
> > > +	if (ctrls[FLASH_DURATION]) {
> > > +		if (WARN_ON_ONCE(!fled_cdev))
> > > +			return -EINVAL;
> > > +
> > > +		ret = led_set_flash_duration(fled_cdev,
> > > +					     ctrls[FLASH_DURATION]->val);
> > > +		if (ret < 0)
> > > +			return ret;
> > > +	}
> > > +
> > >  	/*
> > >  	 * For some hardware arrangements setting strobe source may affect
> > >  	 * torch mode. Synchronize strobe source setting only if not in torch

-- 
Regards,

Laurent Pinchart

  reply	other threads:[~2025-09-08 15:39 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-09-01 15:05 [PATCH v7 00/10] Add strobe duration and hw strobe signal v4l2 ctrl & use it for ov9282 Richard Leitner
2025-09-01 15:05 ` [PATCH v7 01/10] media: v4l: ctrls: add a control for flash/strobe duration Richard Leitner
2025-09-07 18:55   ` Laurent Pinchart
2025-09-08 14:41     ` Richard Leitner
2025-09-08 15:40       ` Laurent Pinchart
2025-09-01 15:05 ` [PATCH v7 02/10] media: v4l2-flash: add support " Richard Leitner
2025-09-07 19:05   ` Laurent Pinchart
2025-09-08 14:15     ` Richard Leitner
2025-09-08 15:39       ` Laurent Pinchart [this message]
2025-09-01 15:05 ` [PATCH v7 03/10] media: v4l: ctrls: add a control for enabling hw strobe signal Richard Leitner
2025-09-01 15:05 ` [PATCH v7 04/10] Documentation: uAPI: media: add V4L2_CID_FLASH_{DURATION,HW_STROBE_SIGNAL} Richard Leitner
2025-09-07 19:49   ` Laurent Pinchart
2025-09-08 12:37     ` Richard Leitner
2025-09-08 15:59       ` Laurent Pinchart
2025-09-09 10:29         ` Richard Leitner
2025-09-17 10:14           ` Richard Leitner
2025-09-17 15:43           ` Sakari Ailus
2025-09-18  8:07             ` Richard Leitner
2025-10-13  9:57             ` Richard Leitner
2025-09-01 15:05 ` [PATCH v7 05/10] media: i2c: ov9282: add output enable register definitions Richard Leitner
2025-09-01 15:05 ` [PATCH v7 06/10] media: i2c: ov9282: add hardware strobe signal v4l2 control Richard Leitner
2025-09-01 20:57   ` Sakari Ailus
2025-09-03  6:58     ` Richard Leitner
2025-09-07 20:08       ` Laurent Pinchart
2025-09-08 12:09         ` Richard Leitner
2025-09-08 13:47           ` Laurent Pinchart
2025-09-08 14:47             ` Richard Leitner
2025-09-01 15:05 ` [PATCH v7 07/10] media: i2c: ov9282: add strobe_duration " Richard Leitner
2025-09-01 20:55   ` Sakari Ailus
2025-09-03  6:54     ` Richard Leitner
2025-09-07 20:18       ` Laurent Pinchart
2025-09-07 20:21         ` Laurent Pinchart
2025-09-08 11:57           ` Richard Leitner
2025-09-08 13:54             ` Laurent Pinchart
2025-09-01 15:05 ` [PATCH v7 08/10] media: i2c: ov9282: add strobe_source " Richard Leitner
2025-09-07 20:20   ` Laurent Pinchart
2025-09-08 11:38     ` Richard Leitner
2025-09-01 15:05 ` [PATCH v7 09/10] media: i2c: ov9282: implement try_ctrl for strobe_duration Richard Leitner
2025-09-01 21:06   ` Sakari Ailus
2025-09-05 17:31   ` kernel test robot
2025-09-01 15:05 ` [PATCH v7 10/10] media: i2c: ov9282: dynamic flash_duration maximum Richard Leitner
2025-09-01 21:16   ` Sakari Ailus
2025-09-03  7:13     ` Richard Leitner
2025-09-03  7:48       ` Sakari Ailus
2025-09-03  8:24         ` Richard Leitner
2025-09-03  8:55           ` 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=20250908153219.GI26062@pendragon.ideasonboard.com \
    --to=laurent.pinchart@ideasonboard.com \
    --cc=dave.stevenson@raspberrypi.com \
    --cc=hverkuil@kernel.org \
    --cc=lee@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-leds@vger.kernel.org \
    --cc=linux-media@vger.kernel.org \
    --cc=mchehab@kernel.org \
    --cc=pavel@kernel.org \
    --cc=richard.leitner@linux.dev \
    --cc=sakari.ailus@linux.intel.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