backlight: lp855x: Catch errors when changing brightness
authorArtur Weber <aweber.kernel@gmail.com>
Fri, 14 Jul 2023 12:14:40 +0000 (14:14 +0200)
committerLee Jones <lee@kernel.org>
Fri, 28 Jul 2023 09:22:38 +0000 (10:22 +0100)
The lp855x_bl_update_status function's return type is int, but
it always returns 0, without checking for the results of the
write_byte/pwm_ctrl functions called within.

Make this function return the return values of the functions it
calls, and modify the lp855x_pwm_ctrl function to return errors.

Signed-off-by: Artur Weber <aweber.kernel@gmail.com>
Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org>
Link: https://lore.kernel.org/r/20230714121440.7717-3-aweber.kernel@gmail.com
Signed-off-by: Lee Jones <lee@kernel.org>
drivers/video/backlight/lp855x_bl.c

index 349ec32..61a7f45 100644 (file)
@@ -217,7 +217,7 @@ err:
        return ret;
 }
 
-static void lp855x_pwm_ctrl(struct lp855x *lp, int br, int max_br)
+static int lp855x_pwm_ctrl(struct lp855x *lp, int br, int max_br)
 {
        struct pwm_state state;
 
@@ -234,23 +234,26 @@ static void lp855x_pwm_ctrl(struct lp855x *lp, int br, int max_br)
        state.duty_cycle = div_u64(br * state.period, max_br);
        state.enabled = state.duty_cycle;
 
-       pwm_apply_state(lp->pwm, &state);
+       return pwm_apply_state(lp->pwm, &state);
 }
 
 static int lp855x_bl_update_status(struct backlight_device *bl)
 {
        struct lp855x *lp = bl_get_data(bl);
        int brightness = bl->props.brightness;
+       int ret;
 
        if (bl->props.state & (BL_CORE_SUSPENDED | BL_CORE_FBBLANK))
                brightness = 0;
 
        if (lp->mode == PWM_BASED)
-               lp855x_pwm_ctrl(lp, brightness, bl->props.max_brightness);
+               ret = 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);
+               ret = lp855x_write_byte(lp, lp->cfg->reg_brightness,
+                                       (u8)brightness);
 
-       return 0;
+       return ret;
 }
 
 static const struct backlight_ops lp855x_bl_ops = {