]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/linux/leds.h
leds: add possibility to remove leds classdevs during suspend/resume
[linux-2.6-omap-h63xx.git] / include / linux / leds.h
index dc1178f6184b1480da56a11eeba46bc0f2cc2b14..00f89fd6c52a21f83d26a7b94e351e3c782854bf 100644 (file)
@@ -14,6 +14,7 @@
 
 #include <linux/list.h>
 #include <linux/spinlock.h>
+#include <linux/rwsem.h>
 
 struct device;
 /*
@@ -43,7 +44,7 @@ struct led_classdev {
 
 #ifdef CONFIG_LEDS_TRIGGERS
        /* Protects the trigger data below */
-       rwlock_t                 trigger_lock;
+       struct rw_semaphore      trigger_lock;
 
        struct led_trigger      *trigger;
        struct list_head         trig_list;
@@ -53,7 +54,15 @@ struct led_classdev {
 
 extern int led_classdev_register(struct device *parent,
                                 struct led_classdev *led_cdev);
-extern void led_classdev_unregister(struct led_classdev *led_cdev);
+extern void __led_classdev_unregister(struct led_classdev *led_cdev, bool sus);
+static inline void led_classdev_unregister(struct led_classdev *lcd)
+{
+       __led_classdev_unregister(lcd, false);
+}
+static inline void led_classdev_unregister_suspended(struct led_classdev *lcd)
+{
+       __led_classdev_unregister(lcd, true);
+}
 extern void led_classdev_suspend(struct led_classdev *led_cdev);
 extern void led_classdev_resume(struct led_classdev *led_cdev);