backlight: pwm_bl: Use dev_err_probe

Use dev_err_probe to simplify error paths. Also let dev_err_probe handle
the -EPROBE_DEFER case and add an entry to
/sys/kernel/debug/devices_deferred when deferred.

Signed-off-by: Alexander Stein <alexander.stein@ew.tq-group.com>
Reviewed-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Reviewed-by: Daniel Thompson <daniel.thompson@linaro.org>
Link: https://lore.kernel.org/r/20231117120625.2398417-1-alexander.stein@ew.tq-group.com
Signed-off-by: Lee Jones <lee@kernel.org>
This commit is contained in:
Alexander Stein 2023-11-17 13:06:25 +01:00 committed by Lee Jones
parent 2e914516a5
commit 58793f263a

View File

@ -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;
}
@ -530,8 +532,8 @@ static int pwm_backlight_probe(struct platform_device *pdev)
ret = pwm_apply_state(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;
}