]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
led: triggers: Initialize LED_INIT_DEFAULT_TRIGGER if trigger is brought after class
authorKrzysztof Kozlowski <krzk@kernel.org>
Mon, 10 Dec 2018 09:29:59 +0000 (10:29 +0100)
committerJacek Anaszewski <jacek.anaszewski@gmail.com>
Mon, 10 Dec 2018 20:31:55 +0000 (21:31 +0100)
Trigger driver can be initialized after the LED class device driver.  In
such case led_trigger_set_default() won't be called and flag
LED_INIT_DEFAULT_TRIGGER should be set from led_trigger_register().

Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
Signed-off-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
drivers/leds/led-triggers.c

index f28ce25d24d004d90acb34308fcbbed8d6b2dfb9..2d451b6c24af54ad86194f5a365942028301610d 100644 (file)
@@ -251,8 +251,10 @@ int led_trigger_register(struct led_trigger *trig)
        list_for_each_entry(led_cdev, &leds_list, node) {
                down_write(&led_cdev->trigger_lock);
                if (!led_cdev->trigger && led_cdev->default_trigger &&
-                           !strcmp(led_cdev->default_trigger, trig->name))
+                           !strcmp(led_cdev->default_trigger, trig->name)) {
+                       led_cdev->flags |= LED_INIT_DEFAULT_TRIGGER;
                        led_trigger_set(led_cdev, trig);
+               }
                up_write(&led_cdev->trigger_lock);
        }
        up_read(&leds_list_lock);