]> git.ipfire.org Git - thirdparty/linux.git/blobdiff - drivers/video/backlight/pwm_bl.c
Merge tag 'backlight-next-6.8' of git://git.kernel.org/pub/scm/linux/kernel/git/lee...
[thirdparty/linux.git] / drivers / video / backlight / pwm_bl.c
index 289bd9ce4d36d4ad5b751f25b122ee622bb31f23..ffcebf6aa76a967a05716a1db8f316295a0c2f66 100644 (file)
@@ -103,7 +103,7 @@ static int pwm_backlight_update_status(struct backlight_device *bl)
                pwm_get_state(pb->pwm, &state);
                state.duty_cycle = compute_duty_cycle(pb, brightness, &state);
                state.enabled = true;
-               pwm_apply_state(pb->pwm, &state);
+               pwm_apply_might_sleep(pb->pwm, &state);
 
                pwm_backlight_power_on(pb);
        } else {
@@ -120,7 +120,7 @@ static int pwm_backlight_update_status(struct backlight_device *bl)
                 * inactive output.
                 */
                state.enabled = !pb->power_supply && !pb->enable_gpio;
-               pwm_apply_state(pb->pwm, &state);
+               pwm_apply_might_sleep(pb->pwm, &state);
        }
 
        if (pb->notify_after)
@@ -461,10 +461,9 @@ static int pwm_backlight_probe(struct platform_device *pdev)
 
        if (!data) {
                ret = pwm_backlight_parse_dt(&pdev->dev, &defdata);
-               if (ret < 0) {
-                       dev_err(&pdev->dev, "failed to find platform data\n");
-                       return ret;
-               }
+               if (ret < 0)
+                       return dev_err_probe(&pdev->dev, ret,
+                                            "failed to find platform data\n");
 
                data = &defdata;
        }
@@ -493,24 +492,27 @@ static int pwm_backlight_probe(struct platform_device *pdev)
        pb->enable_gpio = devm_gpiod_get_optional(&pdev->dev, "enable",
                                                  GPIOD_ASIS);
        if (IS_ERR(pb->enable_gpio)) {
-               ret = PTR_ERR(pb->enable_gpio);
+               ret = dev_err_probe(&pdev->dev, PTR_ERR(pb->enable_gpio),
+                                   "failed to acquire enable GPIO\n");
                goto err_alloc;
        }
 
        pb->power_supply = devm_regulator_get_optional(&pdev->dev, "power");
        if (IS_ERR(pb->power_supply)) {
                ret = PTR_ERR(pb->power_supply);
-               if (ret == -ENODEV)
+               if (ret == -ENODEV) {
                        pb->power_supply = NULL;
-               else
+               } else {
+                       dev_err_probe(&pdev->dev, ret,
+                                     "failed to acquire power regulator\n");
                        goto err_alloc;
+               }
        }
 
        pb->pwm = devm_pwm_get(&pdev->dev, NULL);
        if (IS_ERR(pb->pwm)) {
-               ret = PTR_ERR(pb->pwm);
-               if (ret != -EPROBE_DEFER)
-                       dev_err(&pdev->dev, "unable to request PWM\n");
+               ret = dev_err_probe(&pdev->dev, PTR_ERR(pb->pwm),
+                                   "unable to request PWM\n");
                goto err_alloc;
        }
 
@@ -528,10 +530,10 @@ static int pwm_backlight_probe(struct platform_device *pdev)
        if (!state.period && (data->pwm_period_ns > 0))
                state.period = data->pwm_period_ns;
 
-       ret = pwm_apply_state(pb->pwm, &state);
+       ret = pwm_apply_might_sleep(pb->pwm, &state);
        if (ret) {
-               dev_err(&pdev->dev, "failed to apply initial PWM state: %d\n",
-                       ret);
+               dev_err_probe(&pdev->dev, ret,
+                             "failed to apply initial PWM state");
                goto err_alloc;
        }
 
@@ -568,8 +570,8 @@ static int pwm_backlight_probe(struct platform_device *pdev)
                ret = pwm_backlight_brightness_default(&pdev->dev, data,
                                                       state.period);
                if (ret < 0) {
-                       dev_err(&pdev->dev,
-                               "failed to setup default brightness table\n");
+                       dev_err_probe(&pdev->dev, ret,
+                                     "failed to setup default brightness table\n");
                        goto err_alloc;
                }
 
@@ -597,8 +599,8 @@ static int pwm_backlight_probe(struct platform_device *pdev)
        bl = backlight_device_register(dev_name(&pdev->dev), &pdev->dev, pb,
                                       &pwm_backlight_ops, &props);
        if (IS_ERR(bl)) {
-               dev_err(&pdev->dev, "failed to register backlight\n");
-               ret = PTR_ERR(bl);
+               ret = dev_err_probe(&pdev->dev, PTR_ERR(bl),
+                                   "failed to register backlight\n");
                goto err_alloc;
        }
 
@@ -633,7 +635,7 @@ static void pwm_backlight_remove(struct platform_device *pdev)
        pwm_get_state(pb->pwm, &state);
        state.duty_cycle = 0;
        state.enabled = false;
-       pwm_apply_state(pb->pwm, &state);
+       pwm_apply_might_sleep(pb->pwm, &state);
 
        if (pb->exit)
                pb->exit(&pdev->dev);
@@ -649,7 +651,7 @@ static void pwm_backlight_shutdown(struct platform_device *pdev)
        pwm_get_state(pb->pwm, &state);
        state.duty_cycle = 0;
        state.enabled = false;
-       pwm_apply_state(pb->pwm, &state);
+       pwm_apply_might_sleep(pb->pwm, &state);
 }
 
 #ifdef CONFIG_PM_SLEEP
@@ -673,7 +675,7 @@ static int pwm_backlight_suspend(struct device *dev)
        pwm_get_state(pb->pwm, &state);
        state.duty_cycle = 0;
        state.enabled = false;
-       pwm_apply_state(pb->pwm, &state);
+       pwm_apply_might_sleep(pb->pwm, &state);
 
        if (pb->notify_after)
                pb->notify_after(pb->dev, 0);