mirror of
https://github.com/torvalds/linux.git
synced 2026-11-07 06:17:02 +01:00
leds: trigger: Enforce strict checks in led_trigger_is_hw_controlled()
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 <i@rong.moe> Link: https://patch.msgid.link/20260921-leds-trigger-hw-changed-v7-9-fe3cdb6dec51@rong.moe Signed-off-by: Lee Jones <lee@kernel.org>
This commit is contained in:
parent
072e0e799b
commit
7b9a609575
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user