aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/leds/led-triggers.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2010-11-11 14:05:21 -0800
committerLinus Torvalds <torvalds@linux-foundation.org>2010-11-12 07:55:32 -0800
commit5ada28bf76752e33dce3d807bf0dfbe6d1b943ad (patch)
tree03ce703dce3c5f5afad16a81556608700849d6c5 /drivers/leds/led-triggers.c
parent52ca0e84b05595cf74f1ff772b3f9807256b1b27 (diff)
downloadkernel_goldelico_gta04-5ada28bf76752e33dce3d807bf0dfbe6d1b943ad.zip
kernel_goldelico_gta04-5ada28bf76752e33dce3d807bf0dfbe6d1b943ad.tar.gz
kernel_goldelico_gta04-5ada28bf76752e33dce3d807bf0dfbe6d1b943ad.tar.bz2
led-class: always implement blinking
Currently, blinking LEDs can be awkward because it is not guaranteed that all LEDs implement blinking. The trigger that wants it to blink then needs to implement its own timer solution. Rather than require that, add led_blink_set() API that triggers can use. This function will attempt to use hw blinking, but if that fails implements a timer for it. To stop blinking again, brightness_set() also needs to be wrapped into API that will stop the software blink. As a result of this, the timer trigger becomes a very trivial one, and hopefully we can finally see triggers using blinking as well because it's always easy to use. Signed-off-by: Johannes Berg <johannes.berg@intel.com> Acked-by: Richard Purdie <rpurdie@linux.intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/leds/led-triggers.c')
-rw-r--r--drivers/leds/led-triggers.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/leds/led-triggers.c b/drivers/leds/led-triggers.c
index f1c00db..c41eb61 100644
--- a/drivers/leds/led-triggers.c
+++ b/drivers/leds/led-triggers.c
@@ -113,7 +113,7 @@ void led_trigger_set(struct led_classdev *led_cdev, struct led_trigger *trigger)
if (led_cdev->trigger->deactivate)
led_cdev->trigger->deactivate(led_cdev);
led_cdev->trigger = NULL;
- led_set_brightness(led_cdev, LED_OFF);
+ led_brightness_set(led_cdev, LED_OFF);
}
if (trigger) {
write_lock_irqsave(&trigger->leddev_list_lock, flags);