lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20250908154024.GJ26062@pendragon.ideasonboard.com>
Date: Mon, 8 Sep 2025 17:40:24 +0200
From: Laurent Pinchart <laurent.pinchart@...asonboard.com>
To: Richard Leitner <richard.leitner@...ux.dev>
Cc: Sakari Ailus <sakari.ailus@...ux.intel.com>,
	Dave Stevenson <dave.stevenson@...pberrypi.com>,
	Mauro Carvalho Chehab <mchehab@...nel.org>,
	Lee Jones <lee@...nel.org>, Pavel Machek <pavel@...nel.org>,
	linux-media@...r.kernel.org, linux-kernel@...r.kernel.org,
	linux-leds@...r.kernel.org, Hans Verkuil <hverkuil@...nel.org>
Subject: Re: [PATCH v7 01/10] media: v4l: ctrls: add a control for
 flash/strobe duration

On Mon, Sep 08, 2025 at 04:41:30PM +0200, Richard Leitner wrote:
> On Sun, Sep 07, 2025 at 08:55:12PM +0200, Laurent Pinchart wrote:
> > On Mon, Sep 01, 2025 at 05:05:06PM +0200, Richard Leitner wrote:
> > > Add a control V4L2_CID_FLASH_DURATION to set the duration of a
> > > flash/strobe pulse. This is different to the V4L2_CID_FLASH_TIMEOUT
> > > control, as the timeout defines a limit after which the flash is
> > > "forcefully" turned off again.
> > > 
> > > On the other hand the new V4L2_CID_FLASH_DURATION is the desired length
> > > of the flash/strobe pulse.
> > 
> > It took me a while to understand the difference between the
> > V4L2_CID_FLASH_TIMEOUT and V4L2_CID_FLASH_DURATION controls, as I
> > wondered how a device could implement different duration and timeout
> > values. Then I realized that the timeout control is meant for flash
> > controllers, while the duration control is meant for the source of the
> > flash controller's external hardware strobe signal, typically the camera
> > sensor. I'd like this to be more explicit, here and in the
> > documentation. Here's a proposal for an updated commit message:
> 
> Thanks for that proposal! Sorry for not writing clear documentation on
> this. I think I was too deep in the topic for too long and couldn't
> step back enough to write something that would make sense on a first read

No need to apologize, it happens all the time, everywhere, and to
everybody (myself included). Writing documentation is hard. That makes
reviews from people not familiar with the topic important.

> > ----
> > Add a V4L2_CID_FLASH_DURATION control to set the duration of a
> > flash/strobe pulse. This controls the length of the flash/strobe pulse
> > output by device (typically a camera sensor) and connected to the flash
> > controller. This is different to the V4L2_CID_FLASH_TIMEOUT control,
> > which is implemented by the flash controller and defines a limit after
> > which the flash is "forcefully" turned off again.
> > ----
> > 
> > This could probably be improved, but it's good enough for me for the
> > commit message.
> 
> Thanks. I will adopt it for the next version of the series.
> 
> > On a side note, I think we could have reused the V4L2_CID_FLASH_TIMEOUT
> > control for this purpose, even if the name isn't the best match, as the
> > two usages are implemented on different devices (flash controller vs.
> > camera sensor). We have no shortage of control ID space, so a separate
> > control ID is fine too, and probably clearer (as long as we document it
> > clearly).
> > 
> > Reviewed-by: Laurent Pinchart <laurent.pinchart@...asonboard.com>
> > 
> > > Signed-off-by: Richard Leitner <richard.leitner@...ux.dev>
> > > ---
> > >  drivers/media/v4l2-core/v4l2-ctrls-defs.c | 1 +
> > >  include/uapi/linux/v4l2-controls.h        | 1 +
> > >  2 files changed, 2 insertions(+)
> > > 
> > > diff --git a/drivers/media/v4l2-core/v4l2-ctrls-defs.c b/drivers/media/v4l2-core/v4l2-ctrls-defs.c
> > > index 1ea52011247accc51d0261f56eab1cf13c0624a0..f9ed7273a9f3eafe01c31b638e1c8d9fcf5424af 100644
> > > --- a/drivers/media/v4l2-core/v4l2-ctrls-defs.c
> > > +++ b/drivers/media/v4l2-core/v4l2-ctrls-defs.c
> > > @@ -1135,6 +1135,7 @@ const char *v4l2_ctrl_get_name(u32 id)
> > >  	case V4L2_CID_FLASH_FAULT:		return "Faults";
> > >  	case V4L2_CID_FLASH_CHARGE:		return "Charge";
> > >  	case V4L2_CID_FLASH_READY:		return "Ready to Strobe";
> > > +	case V4L2_CID_FLASH_DURATION:		return "Strobe Duration";
> > >  
> > >  	/* JPEG encoder controls */
> > >  	/* Keep the order of the 'case's the same as in v4l2-controls.h! */
> > > diff --git a/include/uapi/linux/v4l2-controls.h b/include/uapi/linux/v4l2-controls.h
> > > index f836512e9debbc65d62a9fe04069b056be42f7b2..a5b7c382d77118eb7966385c5b22d5a89bc2b272 100644
> > > --- a/include/uapi/linux/v4l2-controls.h
> > > +++ b/include/uapi/linux/v4l2-controls.h
> > > @@ -1186,6 +1186,7 @@ enum v4l2_flash_strobe_source {
> > >  
> > >  #define V4L2_CID_FLASH_CHARGE			(V4L2_CID_FLASH_CLASS_BASE + 11)
> > >  #define V4L2_CID_FLASH_READY			(V4L2_CID_FLASH_CLASS_BASE + 12)
> > > +#define V4L2_CID_FLASH_DURATION			(V4L2_CID_FLASH_CLASS_BASE + 13)
> > >  
> > >  
> > >  /* JPEG-class control IDs */

-- 
Regards,

Laurent Pinchart

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ