leds: Add ability to blink via simple trigger
authorVasily Khoruzhick <anarsoul@gmail.com>
Fri, 7 Jan 2011 16:28:16 +0000 (16:28 +0000)
committerAnton Vorontsov <cbouatmailru@gmail.com>
Mon, 31 Jan 2011 13:30:24 +0000 (16:30 +0300)
As blink API is now available, it's possible to add ability to blink via
simple trigger.

Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
Signed-off-by: Anton Vorontsov <cbouatmailru@gmail.com>
drivers/leds/led-triggers.c
include/linux/leds.h

index c41eb61..4bebae7 100644 (file)
@@ -231,6 +231,26 @@ void led_trigger_event(struct led_trigger *trigger,
 }
 EXPORT_SYMBOL_GPL(led_trigger_event);
 
+void led_trigger_blink(struct led_trigger *trigger,
+                      unsigned long *delay_on,
+                      unsigned long *delay_off)
+{
+       struct list_head *entry;
+
+       if (!trigger)
+               return;
+
+       read_lock(&trigger->leddev_list_lock);
+       list_for_each(entry, &trigger->led_cdevs) {
+               struct led_classdev *led_cdev;
+
+               led_cdev = list_entry(entry, struct led_classdev, trig_list);
+               led_blink_set(led_cdev, delay_on, delay_off);
+       }
+       read_unlock(&trigger->leddev_list_lock);
+}
+EXPORT_SYMBOL_GPL(led_trigger_blink);
+
 void led_trigger_register_simple(const char *name, struct led_trigger **tp)
 {
        struct led_trigger *trigger;
index 0f19df9..ffd5c3d 100644 (file)
@@ -145,6 +145,9 @@ extern void led_trigger_register_simple(const char *name,
 extern void led_trigger_unregister_simple(struct led_trigger *trigger);
 extern void led_trigger_event(struct led_trigger *trigger,
                                enum led_brightness event);
+extern void led_trigger_blink(struct led_trigger *trigger,
+                             unsigned long *delay_on,
+                             unsigned long *delay_off);
 
 #else