|
@@ -34,6 +34,7 @@ struct pwm_bl_data {
|
|
|
struct regulator *power_supply;
|
|
|
struct gpio_desc *enable_gpio;
|
|
|
unsigned int scale;
|
|
|
+ bool legacy;
|
|
|
int (*notify)(struct device *,
|
|
|
int brightness);
|
|
|
void (*notify_after)(struct device *,
|
|
@@ -274,7 +275,7 @@ static int pwm_backlight_probe(struct platform_device *pdev)
|
|
|
pb->pwm = devm_pwm_get(&pdev->dev, NULL);
|
|
|
if (IS_ERR(pb->pwm)) {
|
|
|
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");
|
|
@@ -339,6 +340,8 @@ static int pwm_backlight_remove(struct platform_device *pdev)
|
|
|
|
|
|
if (pb->exit)
|
|
|
pb->exit(&pdev->dev);
|
|
|
+ if (pb->legacy)
|
|
|
+ pwm_free(pb->pwm);
|
|
|
|
|
|
return 0;
|
|
|
}
|