The new GPIO may have a different state than the old one.

Signed-off-by: Jan Kiszka <[email protected]>
---
 drivers/leds/trigger/ledtrig-gpio.c | 2 ++
 1 file changed, 2 insertions(+)

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;
-- 
2.12.0

Reply via email to