summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Norris <briannorris@chromium.org>2018-01-17 22:22:49 +0100
committerFelipe Balbi <felipe.balbi@linux.intel.com>2018-02-12 09:49:49 +0100
commit00b42170c86f90ac9dea83a7dfcd3f0c38098fe2 (patch)
tree59a5b1082301936780af637d155eac32d11e62ed
parentusb: gadget: f_uac2: fix bFirstInterface in composite gadget (diff)
downloadlinux-00b42170c86f90ac9dea83a7dfcd3f0c38098fe2.tar.xz
linux-00b42170c86f90ac9dea83a7dfcd3f0c38098fe2.zip
usb: dwc3: Undo PHY init if soft reset fails
In this function, we init the USB2 and USB3 PHYs, but if soft reset times out, we don't unwind this. Noticed by inspection. Signed-off-by: Brian Norris <briannorris@chromium.org> Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
-rw-r--r--drivers/usb/dwc3/core.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index ade2ab00d37a..bc2467f0e6a7 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -234,6 +234,9 @@ static int dwc3_core_soft_reset(struct dwc3 *dwc)
udelay(1);
} while (--retries);
+ phy_exit(dwc->usb3_generic_phy);
+ phy_exit(dwc->usb2_generic_phy);
+
return -ETIMEDOUT;
}