forked from luck/tmp_suning_uos_patched
backlight: pwm: Reject legacy PWM request for device defined in DT
Platform PWM backlight data provided by board's device tree should be complete enough to successfully request a pwm device using pwm_get() API. This change fixes a bug, when an arbitrary (first found) PWM is connected to a "pwm-backlight" compatible device, when explicit PWM device reference is not given. Documentation/devicetree/bindings/video/backlight/pwm-backlight.txt already describes "pwms" as a required property, instead of blind selection of a potentially wrong PWM reject legacy PWM device registration request, leave legacy API only for non-dt cases. Based on initial implementation done by Dmitry Eremin-Solenikov. Reported-by: Dmitry Eremin-Solenikov <dbaryshkov@gmail.com> Signed-off-by: Vladimir Zapolskiy <vladimir_zapolskiy@mentor.com> Acked-by: Thierry Reding <thierry.reding@gmail.com> Acked-by: Nicolas Ferre <nicolas.ferre@atmel.com> Tested-by: Robert Jarzmik <robert.jarzmik@free.fr> Signed-off-by: Lee Jones <lee.jones@linaro.org>
This commit is contained in:
parent
f85de2d9e2
commit
dc881123aa
@ -271,19 +271,18 @@ static int pwm_backlight_probe(struct platform_device *pdev)
|
||||
}
|
||||
|
||||
pb->pwm = devm_pwm_get(&pdev->dev, NULL);
|
||||
if (IS_ERR(pb->pwm)) {
|
||||
ret = PTR_ERR(pb->pwm);
|
||||
if (ret == -EPROBE_DEFER)
|
||||
goto err_alloc;
|
||||
|
||||
if (IS_ERR(pb->pwm) && PTR_ERR(pb->pwm) != -EPROBE_DEFER
|
||||
&& !pdev->dev.of_node) {
|
||||
dev_err(&pdev->dev, "unable to request PWM, trying legacy API\n");
|
||||
pb->legacy = true;
|
||||
pb->pwm = pwm_request(data->pwm_id, "pwm-backlight");
|
||||
if (IS_ERR(pb->pwm)) {
|
||||
dev_err(&pdev->dev, "unable to request legacy PWM\n");
|
||||
ret = PTR_ERR(pb->pwm);
|
||||
goto err_alloc;
|
||||
}
|
||||
}
|
||||
|
||||
if (IS_ERR(pb->pwm)) {
|
||||
ret = PTR_ERR(pb->pwm);
|
||||
if (ret != -EPROBE_DEFER)
|
||||
dev_err(&pdev->dev, "unable to request PWM\n");
|
||||
goto err_alloc;
|
||||
}
|
||||
|
||||
dev_dbg(&pdev->dev, "got pwm for backlight\n");
|
||||
|
Loading…
Reference in New Issue
Block a user