backlight: lp855x: Don't clear level on suspend/blank
authorSean Paul <seanpaul@chromium.org>
Mon, 11 May 2015 20:32:05 +0000 (13:32 -0700)
committerLee Jones <lee.jones@linaro.org>
Tue, 23 Jun 2015 14:47:33 +0000 (15:47 +0100)
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>
drivers/video/backlight/lp855x_bl.c

index a26d3bb2565071d6897a70a6ef42de56614a2c71..88116b493f3ba9d3177c22866df061d7fd449ef7 100644 (file)
@@ -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;
 }