X-Git-Url: http://pilppa.org/gitweb/?a=blobdiff_plain;f=include%2Flinux%2Fleds.h;h=0201f6f51ceab72892ce6b2c167d8dceaa2a23d5;hb=f18edc95a37a901ffcbe91f5e05105f916a04fae;hp=dc1178f6184b1480da56a11eeba46bc0f2cc2b14;hpb=194e3d174043f5ab22649a5cb38a1c05d015750f;p=linux-2.6-omap-h63xx.git diff --git a/include/linux/leds.h b/include/linux/leds.h index dc1178f6184..0201f6f51ce 100644 --- a/include/linux/leds.h +++ b/include/linux/leds.h @@ -14,6 +14,7 @@ #include #include +#include struct device; /* @@ -37,13 +38,18 @@ struct led_classdev { void (*brightness_set)(struct led_classdev *led_cdev, enum led_brightness brightness); + /* Activate hardware accelerated blink */ + int (*blink_set)(struct led_classdev *led_cdev, + unsigned long *delay_on, + unsigned long *delay_off); + struct device *dev; struct list_head node; /* LED Device list */ char *default_trigger; /* Trigger to use */ #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 +59,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);