On 3/7/25 17:50, Jacek Anaszewski wrote:
Hi Craig,
On 3/6/25 23:55, Craig McQueen wrote:
If the text "default" is written to the LED's sysfs 'trigger' attr, then
call led_trigger_set_default() to set the LED to its default trigger.
---
drivers/leds/led-triggers.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/leds/led-triggers.c b/drivers/leds/led-triggers.c
index b2d40f87a5ff..f2bc3bb5062d 100644
--- a/drivers/leds/led-triggers.c
+++ b/drivers/leds/led-triggers.c
@@ -54,6 +54,11 @@ ssize_t led_trigger_write(struct file *filp, struct
kobject *kobj,
goto unlock;
}
+ if (sysfs_streq(buf, "default")) {
+ led_trigger_set_default(led_cdev);
+ goto unlock;
+ }
+
down_read(&triggers_list_lock);
list_for_each_entry(trig, &trigger_list, next_trig) {
if (sysfs_streq(buf, trig->name) &&
trigger_relevant(led_cdev, trig)) {
Makes sense for me, this would be the second half of the feature that is
now available only from DT level.
Reviewed-by: Jacek Anaszewski <jacek.anaszewski@xxxxxxxxx>
But after re-thinking it - we need to return -EINVAL in case
LED class device does not define default trigger, so that the user
had proper feedback.
So, led_trigger_set_default() needs to be extended to return error
in case of !led_cdev->default_trigger or !found.
--
Best regards,
Jacek Anaszewski