diff options
author | Andrey Smirnov <andrew.smirnov@gmail.com> | 2019-02-24 22:52:29 -0800 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2019-02-27 08:27:37 +0100 |
commit | b91cf003a12485202c136e8b951f2ae67ab6e6a4 (patch) | |
tree | 788fda5237957e3b25af901abbf49c4b9759203d /drivers/usb | |
parent | 3c2dee2e7d62a32ba85f7bf94bb7abf5b4f09dab (diff) | |
download | barebox-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.c | 6 |
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; |