Platform PWM backlight data provided by board's device tree should be
complete enough to successfully request a pwm device using pwm_get() API.
Based on initial implementation done by Dmitry Eremin-Solenikov.
Reported-by: Dmitry Eremin-Solenikov <redacted>
Signed-off-by: Vladimir Zapolskiy <redacted>
Cc: Thierry Reding <redacted>
Cc: Jingoo Han <redacted>
Cc: Bryan Wu <redacted>
Cc: Lee Jones <redacted>
---
drivers/video/backlight/pwm_bl.c | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/drivers/video/backlight/pwm_bl.c b/drivers/video/backlight/pwm_bl.c
index cb5ae4c..dd7aaf7 100644
--- a/drivers/video/backlight/pwm_bl.c
+++ b/drivers/video/backlight/pwm_bl.c
@@ -272,15 +272,15 @@ static int pwm_backlight_probe(struct platform_device *pdev)
}
pb->pwm = devm_pwm_get(&pdev->dev, NULL);
- if (IS_ERR(pb->pwm)) {
+ if (IS_ERR(pb->pwm) && !pdev->dev.of_node) {
dev_err(&pdev->dev, "unable to request PWM, trying legacy API\n");
-
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)) {
+ dev_err(&pdev->dev, "unable to request PWM\n");
+ ret = PTR_ERR(pb->pwm);
+ goto err_alloc;
}
dev_dbg(&pdev->dev, "got pwm for backlight\n");--
1.7.10.4