led: triggers: Add LED_INIT_DEFAULT_TRIGGER flag

Add the flag LED_INIT_DEFAULT_TRIGGER for indicating that trigger
being set is a default trigger for the LED class device, and
thus it should be initialized with settings provided in the fwnode.

Set the flag in the led_trigger_set_default(). It is expected to be
cleared in the activate() op of a trigger after trigger fwnode
initialization data is parsed and applied. This should happen only
once after LED class device registration, to allow leaving triggers
in the idle state on re-apply and let the users apply their own
settings without interference from the default ones.

Signed-off-by: Jacek Anaszewski <[email protected]>
Acked-by: Pavel Machek <[email protected]>
Signed-off-by: Krzysztof Kozlowski <[email protected]>
This commit is contained in:
Jacek Anaszewski 2018-12-10 10:29:58 +01:00
commit 02d31765bb
2 changed files with 2 additions and 0 deletions

View file

@ -201,6 +201,7 @@ void led_trigger_set_default(struct led_classdev *led_cdev)
down_write(&led_cdev->trigger_lock);
list_for_each_entry(trig, &trigger_list, next_trig) {
if (!strcmp(led_cdev->default_trigger, trig->name)) {
led_cdev->flags |= LED_INIT_DEFAULT_TRIGGER;
led_trigger_set(led_cdev, trig);
break;
}