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: <3neurtcv24b3djg5p5q2snw7lmmgyzky4y7vyuuid7hvb7tepg@ypheu6ephunl>
Date: Mon, 8 Sep 2025 16:41:30 +0200
From: Richard Leitner <richard.leitner@...ux.dev>
To: Laurent Pinchart <laurent.pinchart@...asonboard.com>
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 Sun, Sep 07, 2025 at 08:55:12PM +0200, Laurent Pinchart wrote:
> Hi Richard,
> 
> Thank you for the patch.
> 
> 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

> 
> ----
> 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

regards;rl

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ