[PATCH RFC v3 07/11] leds: trigger: Enforce strict checks in led_trigger_is_hw_controlled()
From: Rong Zhang
Date: Sat Jul 18 2026 - 13:12:03 EST
With all existing triggers adopting the new interface, strict checks
could be enforced to make the semantics of hardware control triggers
clearer.
In detail, a hardware control trigger should:
- Implement offloaded() callback to indicate hardware control
- Associate with the LED classdev's hw_control_trigger string
Signed-off-by: Rong Zhang <i@xxxxxxxx>
---
Changes in v3:
- New patch in the series, splitted from PATCH 3 (thanks Thomas
Weißschuh)
---
drivers/leds/led-triggers.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/leds/led-triggers.c b/drivers/leds/led-triggers.c
index c3c41ef40f01..726fa7bf88cf 100644
--- a/drivers/leds/led-triggers.c
+++ b/drivers/leds/led-triggers.c
@@ -42,9 +42,16 @@ static bool __led_trigger_is_hw_controlled(struct led_classdev *led_cdev)
if (!led_cdev->trigger)
return false;
+ if (!led_cdev->hw_control_trigger ||
+ strcmp(led_cdev->hw_control_trigger, led_cdev->trigger->name))
+ return false;
+
if (led_cdev->trigger->offloaded)
return led_cdev->trigger->offloaded(led_cdev);
+ dev_warn_once(led_cdev->dev, "hw control trigger %s doesn't implement offloaded()\n",
+ led_cdev->trigger->name);
+
return led_cdev->trigger->trigger_type;
}
--
2.53.0