summaryrefslogtreecommitdiffstats
path: root/drivers/usb
diff options
context:
space:
mode:
authorAndrey Smirnov <andrew.smirnov@gmail.com>2019-02-24 22:52:29 -0800
committerSascha Hauer <s.hauer@pengutronix.de>2019-02-27 08:27:37 +0100
commitb91cf003a12485202c136e8b951f2ae67ab6e6a4 (patch)
tree788fda5237957e3b25af901abbf49c4b9759203d /drivers/usb
parent3c2dee2e7d62a32ba85f7bf94bb7abf5b4f09dab (diff)
downloadbarebox-b91cf003a12485202c136e8b951f2ae67ab6e6a4.tar.gz
barebox-b91cf003a12485202c136e8b951f2ae67ab6e6a4.tar.xz
usb: imx: Do not disable VBUS on ehci_register()'s success
Original code was written to exit early on ehci_register()'s success. As a part of e3eb0c729b, however, it was modified to to early exit on failure instead. This resulted in VBUS being erroneously disabled after EHCI controller was added, thus breaking USB on some i.MX boards (confirmed on ZII's RDU2). Fixes: e3eb0c729b ("usb: host: ehci: add ehci_unregister()") Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com> Cc: Vivien Didelot <vivien.didelot@gmail.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/usb')
-rw-r--r--drivers/usb/imx/chipidea-imx.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/usb/imx/chipidea-imx.c b/drivers/usb/imx/chipidea-imx.c
index 8792217706..6c60c383f0 100644
--- a/drivers/usb/imx/chipidea-imx.c
+++ b/drivers/usb/imx/chipidea-imx.c
@@ -201,14 +201,14 @@ static int ci_register_role(struct imx_chipidea *ci)
return ret;
ehci = ehci_register(ci->dev, &ci->data);
- if (IS_ERR(ehci))
+ if (IS_ERR(ehci)) {
+ regulator_disable(ci->vbus);
return PTR_ERR(ehci);
+ }
ci->ehci = ehci;
ci->dev->detect = ci_ehci_detect;
-
- regulator_disable(ci->vbus);
} else {
dev_err(ci->dev, "Host support not available\n");
return -ENODEV;