[PATCH v4 07/12] leds: trigger: Enforce strict checks in led_trigger_is_hw_controlled()
Rong Zhang <[email protected]> Sun, 02 Aug 2026 01:26:51 +0800
| Newsgroups | org.kernel.vger.platform-driver-x86,dev.linux.lists.chrome-platform,org.kernel.vger.linux-doc,org.kernel.vger.linux-kernel,org.kernel.vger.linux-leds,org.kernel.vger.netdev |
|---|---|
| Message-ID | <[email protected]> |
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 <[email protected]> --- 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 de17a8bbb4d4..cb49a02a8b3c 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); + /* Otherwise assume private triggers as always offloaded. */ return led_cdev->trigger->trigger_type; } -- 2.53.0