• Daniel Thompson's avatar
    backlight: pwm_bl: Improve bootloader/kernel device handover · 79fad92f
    Daniel Thompson authored
    Currently there are (at least) two problems in the way pwm_bl starts
    managing the enable_gpio pin. Both occur when the backlight is initially
    off and the driver finds the pin not already in output mode and, as a
    result, unconditionally switches it to output-mode and asserts the signal.
    
    Problem 1: This could cause the backlight to flicker since, at this stage
    in driver initialisation, we have no idea what the PWM and regulator are
    doing (an unconfigured PWM could easily "rest" at 100% duty cycle).
    
    Problem 2: This will cause us not to correctly honour the
    post_pwm_on_delay (which also risks flickers).
    
    Fix this by moving the code to configure the GPIO output mode until after
    we have examines the handover state. That allows us to initialize
    enable_gpio to off if the backlight is currently off and on if the
    backlight is on.
    
    Cc: stable@vger.kernel.org
    Reported-by: default avatarMarek Vasut <marex@denx.de>
    Signed-off-by: default avatarDaniel Thompson <daniel.thompson@linaro.org>
    Acked-by: default avatarMarek Vasut <marex@denx.de>
    Tested-by: default avatarMarek Vasut <marex@denx.de>
    Signed-off-by: default avatarLee Jones <lee.jones@linaro.org>
    79fad92f
pwm_bl.c 17.5 KB