From 46874cc2568546b3a60778d0b653bcbfc84e8b30 Mon Sep 17 00:00:00 2001 From: Esben Haabendal Date: Tue, 24 May 2011 17:13:22 -0700 Subject: [PATCH] --- yaml --- r: 250971 b: refs/heads/master c: fff26f8141145e01eae8f4d6e642ac8a0d500158 h: refs/heads/master i: 250969: 26b39749c6828e230eea0d42aad55c44c0c1a481 250967: de43651ae23d304522e22ce6075039760d8ea591 v: v3 --- [refs] | 2 +- trunk/drivers/leds/led-class.c | 3 ++- trunk/drivers/leds/leds.h | 7 +++++++ trunk/drivers/leds/ledtrig-timer.c | 3 +++ 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 8c027fda62ee..c34d81ba6ae0 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5ff77428e55c152ef75a6967f3266db79926fbde +refs/heads/master: fff26f8141145e01eae8f4d6e642ac8a0d500158 diff --git a/trunk/drivers/leds/led-class.c b/trunk/drivers/leds/led-class.c index d5a4ade88991..dc3d3d83191a 100644 --- a/trunk/drivers/leds/led-class.c +++ b/trunk/drivers/leds/led-class.c @@ -131,7 +131,8 @@ static void led_set_software_blink(struct led_classdev *led_cdev, if (!led_cdev->blink_brightness) led_cdev->blink_brightness = led_cdev->max_brightness; - if (delay_on == led_cdev->blink_delay_on && + if (led_get_trigger_data(led_cdev) && + delay_on == led_cdev->blink_delay_on && delay_off == led_cdev->blink_delay_off) return; diff --git a/trunk/drivers/leds/leds.h b/trunk/drivers/leds/leds.h index 2dd8ecbfdc31..e77c7f8dcdd4 100644 --- a/trunk/drivers/leds/leds.h +++ b/trunk/drivers/leds/leds.h @@ -40,10 +40,17 @@ void led_trigger_set_default(struct led_classdev *led_cdev); void led_trigger_set(struct led_classdev *led_cdev, struct led_trigger *trigger); void led_trigger_remove(struct led_classdev *led_cdev); + +static inline void *led_get_trigger_data(struct led_classdev *led_cdev) +{ + return led_cdev->trigger_data; +} + #else #define led_trigger_set_default(x) do {} while (0) #define led_trigger_set(x, y) do {} while (0) #define led_trigger_remove(x) do {} while (0) +#define led_get_trigger_data(x) (NULL) #endif ssize_t led_trigger_store(struct device *dev, struct device_attribute *attr, diff --git a/trunk/drivers/leds/ledtrig-timer.c b/trunk/drivers/leds/ledtrig-timer.c index b09bcbeade9c..d87c9d02f786 100644 --- a/trunk/drivers/leds/ledtrig-timer.c +++ b/trunk/drivers/leds/ledtrig-timer.c @@ -91,6 +91,9 @@ static void timer_trig_activate(struct led_classdev *led_cdev) if (rc) goto err_out_delayon; + led_blink_set(led_cdev, &led_cdev->blink_delay_on, + &led_cdev->blink_delay_off); + led_cdev->trigger_data = (void *)1; return;