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