When the linux,default-trigger is not found by barebox, then also check if
there might be a barebox,default-trigger.

Signed-off-by: Hubert Feurstein <h.feurst...@gmail.com>
---
 drivers/led/core.c | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/drivers/led/core.c b/drivers/led/core.c
index fec7324e7..4bf19abcc 100644
--- a/drivers/led/core.c
+++ b/drivers/led/core.c
@@ -274,6 +274,9 @@ enum led_trigger trigger_by_name(const char *name)
 {
        int i;
 
+       if (!name)
+               return LED_TRIGGER_MAX;
+
        for (i = 0; i < LED_TRIGGER_MAX; i++)
                if (!strcmp(name, trigger_names[i]))
                        return i;
@@ -287,13 +290,13 @@ void led_of_parse_trigger(struct led *led, struct 
device_node *np)
        const char *trigger;
 
        trigger = of_get_property(np, "linux,default-trigger", NULL);
-       if (!trigger)
-               trigger = of_get_property(np, "barebox,default-trigger", NULL);
+       trg = trigger_by_name(trigger);
 
-       if (!trigger)
-               return;
+       if (trg == LED_TRIGGER_MAX) {
+               trigger = of_get_property(np, "barebox,default-trigger", NULL);
+               trg = trigger_by_name(trigger);
+       }
 
-       trg = trigger_by_name(trigger);
        if (trg != LED_TRIGGER_MAX) {
                /* disable LED before installing trigger */
                led_set(led, 0);
-- 
2.24.0


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to