|
|
@@ -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");
|