leds: Support automatic start of blinking with ledtrig-timer
PATCH 1/1 leds: Support automatic start of blinking with ledtrig-timer
From: Esben Haabendal <[email protected]>
By setting initial values blink_delay_on and blink_delay_off in a led_classdev struct, this change starts the blinking when the led is initialized.
--- drivers/leds/led-class.c | 3 ++- drivers/leds/ledtrig-timer.c | 3 +++ 2 files changed, 5 insertions(+), 1 deletions(-)
drivers/leds/led-class.c +2 -1
@@ -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_cdev->trigger_data && + delay_on == led_cdev->blink_delay_on && delay_off == led_cdev->blink_delay_off)return ;
drivers/leds/ledtrig-timer.c +3 -0
@@ -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 ;
Signature · 1 line
1.7.1
Quoted 31 lines · On Fri, 18 Mar 2011 12:03:19 +0100 [email protected] wrote:
From: Esben Haabendal <[email protected]>
By setting initial values
blink_delay_onandblink_delay_offin aled_classdevstruct, this change starts the blinking when the led is initialized.Signed-off-by Esben Haabendal <[email protected]>--- drivers/leds/led-class.c | 3 ++- drivers/leds/ledtrig-timer.c | 3 +++ 2 files changed, 5 insertions(+), 1 deletions(-)drivers/leds/led-class.c +2
-1@@ -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_cdev->trigger_data && + delay_on == led_cdev->blink_delay_on && delay_off == led_cdev->blink_delay_off)return ;drivers/leds/ledtrig-timer.c +0
-0
drivers/leds/ledtrig-timer.c static void timer_trig_activate(struct led_classdev *led_cdev) · line 99
Quoted 9 lines
drivers/leds/ledtrig-timer.c +3
-0@@ -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 ;
It's unclear (to me) exactly what this patch does. Could you please send a more complete description of the user-visible change in behaviour?
Thanks.
Quoted 42 lines · Andrew Morton
Quoted 39 lines · On Fri, 18 Mar 2011 12:03:19 +0100 [email protected] wrote:
From: Esben Haabendal <[email protected]>
By setting initial values
blink_delay_onandblink_delay_offin aled_classdevstruct, this change starts the blinking when the led is initialized.Signed-off-by Esben Haabendal <[email protected]>--- drivers/leds/led-class.c | 3 ++- drivers/leds/ledtrig-timer.c | 3 +++ 2 files changed, 5 insertions(+), 1 deletions(-)drivers/leds/led-class.c +2
-1@@ -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_cdev->trigger_data && + delay_on == led_cdev->blink_delay_on && delay_off == led_cdev->blink_delay_off)return ;drivers/leds/ledtrig-timer.c +3
-0@@ -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 ;
Quoted 5 lines
drivers/leds/ledtrig-timer.c static void timer_trig_activate(struct led_classdev *led_cdev) · line 99
Quoted 1 line
drivers/leds/ledtrig-timer.c +0
-0return ;It's unclear (to me) exactly what this patch does. Could you please send a more complete description of the user-visible change in behaviour?
With this patch, you can initialize blink_delay_on and blink_delay_off in led_classdev with default_trigger set to "timer", and the led start up blinking. The current ledtrig-timer implementation ignores any initial blink_delay_on/blink_delay_off settings, and requires setting blink_delay_on/blink_delay_off (typically from user-space) before the led blinks.
/Esben