diff options
| author | Svyatoslav Ryhel <[email protected]> | 2023-10-03 09:25:32 +0300 |
|---|---|---|
| committer | Anatolij Gustschin <[email protected]> | 2023-10-22 19:23:47 +0200 |
| commit | 251ff3493233a8fddd4468ff341d63d592b608d4 (patch) | |
| tree | 40b1d7f58663c2acaa28782dd87fbaf1c1bd0ec2 | |
| parent | 9a3a58396b78b1f9d0c14580dc03f81d29207dd2 (diff) | |
video: pwm_backlight: use regulator_set_enable_if_allowed
With the commit 4fcba5d556b4 ("regulator: implement basic reference
counter") the return value of regulator_set_enable may be EALREADY or
EBUSY for fixed/gpio regulators and may be further expanded on all
regulators.
Change to use the more relaxed regulator_set_enable_if_allowed to
continue if regulator already was enabled or disabled.
Signed-off-by: Svyatoslav Ryhel <[email protected]>
| -rw-r--r-- | drivers/video/pwm_backlight.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/video/pwm_backlight.c b/drivers/video/pwm_backlight.c index aa0e2928666..1c747d98d7a 100644 --- a/drivers/video/pwm_backlight.c +++ b/drivers/video/pwm_backlight.c @@ -100,8 +100,8 @@ static int enable_sequence(struct udevice *dev, int seq) plat = dev_get_uclass_plat(priv->reg); log_debug("Enable '%s', regulator '%s'/'%s'\n", dev->name, priv->reg->name, plat->name); - ret = regulator_set_enable(priv->reg, true); - if (ret) { + ret = regulator_set_enable_if_allowed(priv->reg, true); + if (ret && ret != -ENOSYS) { log_debug("Cannot enable regulator for PWM '%s'\n", dev->name); return log_ret(ret); @@ -181,11 +181,10 @@ static int pwm_backlight_set_brightness(struct udevice *dev, int percent) } if (disable) { dm_gpio_set_value(&priv->enable, 0); - if (priv->reg) { - ret = regulator_set_enable(priv->reg, false); - if (ret) - return log_ret(ret); - } + ret = regulator_set_enable_if_allowed(priv->reg, false); + if (ret && ret != -ENOSYS) + return log_ret(ret); + priv->enabled = false; } |
