diff options
author | Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com> | 2013-11-09 14:24:06 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2013-11-11 09:02:07 +0100 |
commit | 4faf3055079abfb5c7790f38b8708306be3cc4fc (patch) | |
tree | 89dc5f2a8c0a4e391decdc7a3ee5f38c57aa9cd7 /drivers/led | |
parent | 7c1091bd5895204b109c5a79996aa9367692a78a (diff) | |
download | barebox-4faf3055079abfb5c7790f38b8708306be3cc4fc.tar.gz barebox-4faf3055079abfb5c7790f38b8708306be3cc4fc.tar.xz |
led: trigger: disable LEDs with trigger before installing it
This disables LEDs that have a trigger function assigned right before
the trigger is installed. As the trigger was parsed before the LED has
been registered, also swap LED registration and trigger parsing.
Signed-off-by: Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/led')
-rw-r--r-- | drivers/led/led-gpio.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/led/led-gpio.c b/drivers/led/led-gpio.c index 69db70fab8..7a5ef473e6 100644 --- a/drivers/led/led-gpio.c +++ b/drivers/led/led-gpio.c @@ -225,6 +225,8 @@ static void led_of_parse_trigger(struct led *led, struct device_node *np) for (i = 0; i < ARRAY_SIZE(triggers); i++) { struct led_trg *trg = &triggers[i]; if (!strcmp(trg->str, trigger)) { + /* disable LED before installing trigger */ + led_set(led, 0); led_set_trigger(trg->trg, led); return; } @@ -252,8 +254,8 @@ static int led_gpio_of_probe(struct device_d *dev) dev_dbg(dev, "register led %s on gpio%d, active_low = %d\n", gled->led.name, gled->gpio, gled->active_low); - led_of_parse_trigger(&gled->led, child); led_gpio_register(gled); + led_of_parse_trigger(&gled->led, child); } return 0; |