leds: added config to prevent clobbering brightness when setting a trigger.
This can be used to switch from a trigger to brightness control, or between
triggers, without glitching the LED.
Change-Id: I5bdedf70c798c60ed6391c7264911b3b54e7e357
diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig
index e4f599f..ae51f7a 100644
--- a/drivers/leds/Kconfig
+++ b/drivers/leds/Kconfig
@@ -301,6 +301,13 @@
This allows LEDs to be initialised in the ON state.
If unsure, say Y.
+config LEDS_TRIGGER_DONT_CLOBBER_BRIGHTNESS
+ bool "Don't clobber brightness"
+ depends on LEDS_TRIGGERS
+ help
+ This prevents the LED brightness from being clobbered when setting
+ triggers.
+
comment "iptables trigger is under Netfilter config (LED target)"
depends on LEDS_TRIGGERS
diff --git a/drivers/leds/led-triggers.c b/drivers/leds/led-triggers.c
index d8ddd9e..f6bb707 100644
--- a/drivers/leds/led-triggers.c
+++ b/drivers/leds/led-triggers.c
@@ -112,7 +112,9 @@
if (led_cdev->trigger->deactivate)
led_cdev->trigger->deactivate(led_cdev);
led_cdev->trigger = NULL;
+#ifndef CONFIG_LEDS_TRIGGER_DONT_CLOBBER_BRIGHTNESS
led_set_brightness(led_cdev, LED_OFF);
+#endif
}
if (trigger) {
write_lock_irqsave(&trigger->leddev_list_lock, flags);