• Matthieu CASTET's avatar
    led: core: Fix brightness setting when setting delay_off=0 · 2b83ff96
    Matthieu CASTET authored
    With the current code, the following sequence won't work :
    echo timer > trigger
    
    echo 0 >  delay_off
    * at this point we call
    ** led_delay_off_store
    ** led_blink_set
    *** stop timer
    ** led_blink_setup
    ** led_set_software_blink
    *** if !delay_on, led off
    *** if !delay_off, set led_set_brightness_nosleep <--- LED_BLINK_SW is set but timer is stop
    *** otherwise start timer/set LED_BLINK_SW flag
    
    echo xxx > brightness
    * led_set_brightness
    ** if LED_BLINK_SW
    *** if brightness=0, led off
    *** else apply brightness if next timer <--- timer is stop, and will never apply new setting
    ** otherwise set led_set_brightness_nosleep
    
    To fix that, when we delete the timer, we should clear LED_BLINK_SW.
    
    Cc: linux-leds@vger.kernel.org
    Signed-off-by: default avatarMatthieu CASTET <matthieu.castet@parrot.com>
    Signed-off-by: default avatarJacek Anaszewski <jacek.anaszewski@gmail.com>
    2b83ff96
led-core.c 8.65 KB