]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
usb: ehci: mxs: Use regulator_set_enable_if_allowed()
authorFabio Estevam <festevam@denx.de>
Mon, 9 Oct 2023 13:15:35 +0000 (10:15 -0300)
committerStefano Babic <sbabic@denx.de>
Mon, 16 Oct 2023 06:46:01 +0000 (08:46 +0200)
Since commit 4fcba5d556b4 ("regulator: implement basic reference
counter") the return value of regulator_set_enable() may be EALREADY or
EBUSY for fixed/GPIO regulators.

Switch to using the more relaxed regulator_set_enable_if_allowed() to
continue if regulator already was enabled or disabled.

This fixes the following error when running the 'ums' command:

=> ums 0 mmc 0
UMS: LUN 0, dev mmc 0, hwpart 0, sector 0x0, count 0xece000
Error enabling VBUS supply
g_dnl_register: failed!, error: -114
g_dnl_register failed

Signed-off-by: Fabio Estevam <festevam@denx.de>
Reviewed-by: Marek Vasut <marex@denx.de>
drivers/usb/host/ehci-mxs.c

index 092c79fd4bc58b36129570a90c85fc5cf2a6b730..ddf7cc2d00a7b1881acdbd7903955fef9fd9a32e 100644 (file)
@@ -236,9 +236,9 @@ static int ehci_usb_probe(struct udevice *dev)
                debug("%s: No vbus supply\n", dev->name);
 
        if (!ret && priv->vbus_supply) {
-               ret = regulator_set_enable(priv->vbus_supply,
-                                          (type == USB_INIT_DEVICE) ?
-                                          false : true);
+               ret = regulator_set_enable_if_allowed(priv->vbus_supply,
+                                                     (type == USB_INIT_DEVICE) ?
+                                                     false : true);
                if (ret) {
                        puts("Error enabling VBUS supply\n");
                        return ret;
@@ -265,7 +265,7 @@ static int ehci_usb_remove(struct udevice *dev)
 
 #if CONFIG_IS_ENABLED(DM_REGULATOR)
        if (priv->vbus_supply) {
-               ret = regulator_set_enable(priv->vbus_supply, false);
+               ret = regulator_set_enable_if_allowed(priv->vbus_supply, false);
                if (ret) {
                        puts("Error disabling VBUS supply\n");
                        return ret;