All of lore.kernel.org
 help / color / mirror / Atom feed
From: Richard Leitner <richard.leitner@linux.dev>
To: Sakari Ailus <sakari.ailus@linux.intel.com>,
	 Dave Stevenson <dave.stevenson@raspberrypi.com>,
	 Mauro Carvalho Chehab <mchehab@kernel.org>,
	Lee Jones <lee@kernel.org>,  Pavel Machek <pavel@kernel.org>,
	 Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Hans Verkuil <hverkuil@xs4all.nl>,
	linux-media@vger.kernel.org,  linux-kernel@vger.kernel.org,
	linux-leds@vger.kernel.org,
	 Richard Leitner <richard.leitner@linux.dev>
Subject: [PATCH v5 02/10] media: v4l2-flash: add support for flash/strobe duration
Date: Tue, 17 Jun 2025 09:31:36 +0200	[thread overview]
Message-ID: <20250617-ov9282-flash-strobe-v5-2-9762da74d065@linux.dev> (raw)
In-Reply-To: <20250617-ov9282-flash-strobe-v5-0-9762da74d065@linux.dev>

Add support for the new V4L2_CID_FLASH_DURATION control to the v4l2
flash led class.

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..69b6c2026e0ad905aaebcdabe1e7002fc48f9e2c 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

-- 
2.47.2


  parent reply	other threads:[~2025-06-17  7:31 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-06-17  7:31 [PATCH v5 00/10] Add strobe/flash duration v4l2 ctrl & use it for ov9282 Richard Leitner
2025-06-17  7:31 ` [PATCH v5 01/10] media: v4l: ctrls: add a control for flash/strobe duration Richard Leitner
2025-06-17  7:31 ` Richard Leitner [this message]
2025-06-17  7:31 ` [PATCH v5 03/10] media: v4l2-flash: fix flash_timeout comment Richard Leitner
2025-06-19  9:37   ` (subset) " Lee Jones
2025-06-19  9:38     ` Lee Jones
2025-07-01  6:36       ` Richard Leitner
2025-06-17  7:31 ` [PATCH v5 04/10] Documentation: uAPI: media: add V4L2_CID_FLASH_DURATION Richard Leitner
2025-06-17  7:31 ` [PATCH v5 05/10] media: i2c: ov9282: add output enable register definitions Richard Leitner
2025-06-17  7:31 ` [PATCH v5 06/10] media: i2c: ov9282: add led_mode v4l2 control Richard Leitner
2025-07-09 21:12   ` Sakari Ailus
2025-07-10  6:50     ` Richard Leitner
2025-07-10  8:14       ` Sakari Ailus
2025-07-11  7:41         ` Richard Leitner
2025-07-30 20:39           ` Sakari Ailus
2025-08-04 13:33             ` Richard Leitner
2025-06-17  7:31 ` [PATCH v5 07/10] media: i2c: ov9282: add strobe_duration " Richard Leitner
2025-06-17  7:31 ` [PATCH v5 08/10] media: i2c: ov9282: add strobe_source " Richard Leitner
2025-06-17  7:31 ` [PATCH v5 09/10] media: i2c: ov9282: implement try_ctrl for strobe_duration Richard Leitner
2025-06-18 13:04   ` kernel test robot
2025-06-17  7:31 ` [PATCH v5 10/10] media: i2c: ov9282: dynamic flash_duration maximum Richard Leitner
2025-07-09  5:24 ` [PATCH v5 00/10] Add strobe/flash duration v4l2 ctrl & use it for ov9282 Richard Leitner

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=20250617-ov9282-flash-strobe-v5-2-9762da74d065@linux.dev \
    --to=richard.leitner@linux.dev \
    --cc=dave.stevenson@raspberrypi.com \
    --cc=hverkuil@xs4all.nl \
    --cc=laurent.pinchart@ideasonboard.com \
    --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=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 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.