diff options
author | Hubert Feurstein <h.feurstein@gmail.com> | 2019-12-10 18:13:03 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2019-12-11 09:36:05 +0100 |
commit | 48e549a865b1b5020c1f2eecb51d0d5fdee35dd1 (patch) | |
tree | 4738489df8db0c9cbcebfae28d0e495631a8581f | |
parent | 4cc250a0e6b3fdbfc2bff28aaebf5f81484e9c0b (diff) | |
download | barebox-48e549a865b1b5020c1f2eecb51d0d5fdee35dd1.tar.gz barebox-48e549a865b1b5020c1f2eecb51d0d5fdee35dd1.tar.xz |
led: check for 'barebox, default-trigger' when 'linux, default-trigger' is not found
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.feurstein@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r-- | drivers/led/core.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/led/core.c b/drivers/led/core.c index fec7324e73..4bf19abcc9 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); |