diff options
author | Svyatoslav Ryhel <clamor95@gmail.com> | 2023-10-03 09:25:32 +0300 |
---|---|---|
committer | Anatolij Gustschin <agust@denx.de> | 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 <clamor95@gmail.com>
-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; } |