[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