summaryrefslogtreecommitdiffstats
path: root/drivers/leds/trigger
diff options
context:
space:
mode:
authorJan Kiszka <jan.kiszka@siemens.com>2017-05-26 15:17:46 +0200
committerJacek Anaszewski <jacek.anaszewski@gmail.com>2017-05-29 21:55:04 +0200
commit71afe3cb1e8fdf89556047e03bcbcd731f1ab108 (patch)
tree3f977279e5487e6a8d3cb990dfe546910d0ddbec /drivers/leds/trigger
parentleds: Delete obsolete Versatile driver (diff)
downloadlinux-71afe3cb1e8fdf89556047e03bcbcd731f1ab108.tar.xz
linux-71afe3cb1e8fdf89556047e03bcbcd731f1ab108.zip
leds: trigger: gpio: Refresh LED state after GPIO change
The new GPIO may have a different state than the old one. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com> Signed-off-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>
Diffstat (limited to 'drivers/leds/trigger')
-rw-r--r--drivers/leds/trigger/ledtrig-gpio.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/leds/trigger/ledtrig-gpio.c b/drivers/leds/trigger/ledtrig-gpio.c
index 51288a45fbcb..93d6b82e6437 100644
--- a/drivers/leds/trigger/ledtrig-gpio.c
+++ b/drivers/leds/trigger/ledtrig-gpio.c
@@ -170,6 +170,8 @@ static ssize_t gpio_trig_gpio_store(struct device *dev,
if (gpio_data->gpio != 0)
free_irq(gpio_to_irq(gpio_data->gpio), led);
gpio_data->gpio = gpio;
+ /* After changing the GPIO, we need to update the LED. */
+ schedule_work(&gpio_data->work);
}
return ret ? ret : n;