backlight: lp855x: Don't clear level on suspend/blank
Don't clear the backlight level when we're going into suspend or blanking. Instead, just temporarily set the level to 0 so we retain the value when we resume. Reported-by: Benson Leung <bleung@chromium.org> Signed-off-by: Sean Paul <seanpaul@chromium.org> Tested-by: Stephen Barber <smbarber@chromium.org> Reviewed-by: Benson Leung <bleung@chromium.org> Acked-by: Milo Kim <milo.kim@ti.com> Signed-off-by: Lee Jones <lee.jones@linaro.org>
This commit is contained in:
Родитель
0e441665bc
Коммит
61c1c6147f
|
@ -257,21 +257,15 @@ static void lp855x_pwm_ctrl(struct lp855x *lp, int br, int max_br)
|
|||
static int lp855x_bl_update_status(struct backlight_device *bl)
|
||||
{
|
||||
struct lp855x *lp = bl_get_data(bl);
|
||||
int brightness = bl->props.brightness;
|
||||
|
||||
if (bl->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK))
|
||||
bl->props.brightness = 0;
|
||||
brightness = 0;
|
||||
|
||||
if (lp->mode == PWM_BASED) {
|
||||
int br = bl->props.brightness;
|
||||
int max_br = bl->props.max_brightness;
|
||||
|
||||
lp855x_pwm_ctrl(lp, br, max_br);
|
||||
|
||||
} else if (lp->mode == REGISTER_BASED) {
|
||||
u8 val = bl->props.brightness;
|
||||
|
||||
lp855x_write_byte(lp, lp->cfg->reg_brightness, val);
|
||||
}
|
||||
if (lp->mode == PWM_BASED)
|
||||
lp855x_pwm_ctrl(lp, brightness, bl->props.max_brightness);
|
||||
else if (lp->mode == REGISTER_BASED)
|
||||
lp855x_write_byte(lp, lp->cfg->reg_brightness, (u8)brightness);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче