summaryrefslogtreecommitdiff
path: root/drivers/leds/led-class-flash.c
diff options
context:
space:
mode:
authorRichard Leitner <richard.leitner@linux.dev>2025-05-07 10:51:31 +0300
committerLee Jones <lee@kernel.org>2025-05-14 11:25:09 +0300
commit6a09ae8281986d5fb5ce0115135c05a5afb8718e (patch)
tree422ea29ae967b3601ec35da7adb504e88e25b7eb /drivers/leds/led-class-flash.c
parentf1c86ab98640e9288049673ca2e4517a9df7ed83 (diff)
downloadlinux-6a09ae8281986d5fb5ce0115135c05a5afb8718e.tar.xz
leds: flash: Add support for flash/strobe duration
Add support for the new V4L2_CID_FLASH_DURATION control to the LEDs driver. Signed-off-by: Richard Leitner <richard.leitner@linux.dev> Link: https://lore.kernel.org/r/20250507-ov9282-flash-strobe-v4-2-72b299c1b7c9@linux.dev Signed-off-by: Lee Jones <lee@kernel.org>
Diffstat (limited to 'drivers/leds/led-class-flash.c')
-rw-r--r--drivers/leds/led-class-flash.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/leds/led-class-flash.c b/drivers/leds/led-class-flash.c
index f4e26ce84862..165035a8826c 100644
--- a/drivers/leds/led-class-flash.c
+++ b/drivers/leds/led-class-flash.c
@@ -440,6 +440,21 @@ int led_update_flash_brightness(struct led_classdev_flash *fled_cdev)
}
EXPORT_SYMBOL_GPL(led_update_flash_brightness);
+int led_set_flash_duration(struct led_classdev_flash *fled_cdev, u32 duration)
+{
+ struct led_classdev *led_cdev = &fled_cdev->led_cdev;
+ struct led_flash_setting *s = &fled_cdev->duration;
+
+ s->val = duration;
+ led_clamp_align(s);
+
+ if (!(led_cdev->flags & LED_SUSPENDED))
+ return call_flash_op(fled_cdev, duration_set, s->val);
+
+ return 0;
+}
+EXPORT_SYMBOL_GPL(led_set_flash_duration);
+
MODULE_AUTHOR("Jacek Anaszewski <j.anaszewski@samsung.com>");
MODULE_DESCRIPTION("LED Flash class interface");
MODULE_LICENSE("GPL v2");