summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHubert Feurstein <h.feurstein@gmail.com>2019-12-10 18:13:03 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2019-12-11 09:36:05 +0100
commit48e549a865b1b5020c1f2eecb51d0d5fdee35dd1 (patch)
tree4738489df8db0c9cbcebfae28d0e495631a8581f
parent4cc250a0e6b3fdbfc2bff28aaebf5f81484e9c0b (diff)
downloadbarebox-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.c13
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);