Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

leds: triggers: handle .trigger_data and .activated() in the core

This helps keeping these two fields consistent and drivers don't need to
care for this themselves any more.

Note that .activated isn't set to true automatically because that might
confuse some triggers when deactivating (e.g. ledtrig-gpio).

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Acked-by: Pavel Machek <pavel@ucw.cz>
Signed-off-by: Jacek Anaszewski <jacek.anaszewski@gmail.com>

authored by

Uwe Kleine-König and committed by
Jacek Anaszewski
a7d5904a a7e7a315

+3
+3
drivers/leds/led-triggers.c
··· 129 129 led_cdev->trigger->deactivate(led_cdev); 130 130 device_remove_groups(led_cdev->dev, led_cdev->trigger->groups); 131 131 led_cdev->trigger = NULL; 132 + led_cdev->trigger_data = NULL; 133 + led_cdev->activated = false; 132 134 led_set_brightness(led_cdev, LED_OFF); 133 135 } 134 136 if (trig) { ··· 172 170 err_activate: 173 171 174 172 led_cdev->trigger = NULL; 173 + led_cdev->trigger_data = NULL; 175 174 write_lock_irqsave(&led_cdev->trigger->leddev_list_lock, flags); 176 175 list_del(&led_cdev->trig_list); 177 176 write_unlock_irqrestore(&led_cdev->trigger->leddev_list_lock, flags);