diff options
| author | Jonas Karlman <[email protected]> | 2023-07-19 21:20:56 +0000 |
|---|---|---|
| committer | Tom Rini <[email protected]> | 2023-08-14 09:14:41 -0400 |
| commit | 335799b7252a1d9125bf9565119d771b8599b6b3 (patch) | |
| tree | 6a229f8d13a6ddc22716d1c0efc7a43e3504cac8 | |
| parent | d82cbc596eb5df41c8e7e3c73dc32b0731cf6500 (diff) | |
usb: dwc2: 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.
Change to use the more relaxed regulator_set_enable_if_allowed to
continue if regulator already was enabled or disabled.
Signed-off-by: Jonas Karlman <[email protected]>
Reviewed-by: Simon Glass <[email protected]>
Tested-by: Simon Glass <[email protected]> # rockpro64-rk3399
Reviewed-by: Marek Vasut <[email protected]>
| -rw-r--r-- | drivers/usb/host/dwc2.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/drivers/usb/host/dwc2.c b/drivers/usb/host/dwc2.c index 9818f9be94e..637eb2dd06f 100644 --- a/drivers/usb/host/dwc2.c +++ b/drivers/usb/host/dwc2.c @@ -194,8 +194,8 @@ static int dwc_vbus_supply_init(struct udevice *dev) return 0; } - ret = regulator_set_enable(priv->vbus_supply, true); - if (ret) { + ret = regulator_set_enable_if_allowed(priv->vbus_supply, true); + if (ret && ret != -ENOSYS) { dev_err(dev, "Error enabling vbus supply\n"); return ret; } @@ -208,12 +208,10 @@ static int dwc_vbus_supply_exit(struct udevice *dev) struct dwc2_priv *priv = dev_get_priv(dev); int ret; - if (priv->vbus_supply) { - ret = regulator_set_enable(priv->vbus_supply, false); - if (ret) { - dev_err(dev, "Error disabling vbus supply\n"); - return ret; - } + ret = regulator_set_enable_if_allowed(priv->vbus_supply, false); + if (ret && ret != -ENOSYS) { + dev_err(dev, "Error disabling vbus supply\n"); + return ret; } return 0; |
