Thread (19 messages) flat view 19 messages, 2 authors, 23h ago
HOTtoday REVIEWED: 1 (1M)

1 review trailer.

[PATCH v7 09/13] leds: trigger: Enforce strict checks in led_trigger_is_hw_controlled()

From: Rong Zhang <hidden>
Date: 2026-09-20 19:44:08
Also in: chrome-platform, linux-doc, linux-leds, lkml, platform-driver-x86
Subsystem: led subsystem, the rest · Maintainers: Lee Jones, Pavel Machek, Linus Torvalds

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 hw_offloaded() callback to indicate hardware control
- Associate with the LED classdev's hw_control_trigger string

The fallback path is kept, but a warning message is emitted when it
reaches there.

Acked-by: Ike Panhc <ikepanhc@gmail.com>
Signed-off-by: Rong Zhang <redacted>
---
Changes in v7:
- Rename the offloaded() callback to hw_offloaded() (thanks Lee Jones)

Changes in v3:
- New patch in the series, splitted from PATCH 3 (thanks Thomas
  Weißschuh)
---
 drivers/leds/led-triggers.c | 8 ++++++++
 1 file changed, 8 insertions(+)
diff --git a/drivers/leds/led-triggers.c b/drivers/leds/led-triggers.c
index 38ce3350c870..6fee3145caab 100644
--- a/drivers/leds/led-triggers.c
+++ b/drivers/leds/led-triggers.c
@@ -42,9 +42,17 @@ 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->hw_offloaded)
 		return led_cdev->trigger->hw_offloaded(led_cdev);
 
+	dev_warn_once(led_cdev->dev,
+		      "Hardware control trigger %s doesn't provide offloaded state\n",
+		      led_cdev->trigger->name);
+
 	/* Otherwise assume private triggers are always offloaded. */
 	return led_cdev->trigger->trigger_type;
 }
-- 
2.55.0
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help