usb: dwc3: Undo PHY init if soft reset fails
authorBrian Norris <briannorris@chromium.org>
Wed, 17 Jan 2018 21:22:49 +0000 (13:22 -0800)
committerFelipe Balbi <felipe.balbi@linux.intel.com>
Mon, 12 Feb 2018 08:49:49 +0000 (10:49 +0200)
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>
drivers/usb/dwc3/core.c

index ade2ab00d37ab1255a168b5f5e8d0911c1051a2f..bc2467f0e6a7b9a93d2b494b9b528a9c09154efc 100644 (file)
@@ -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;
 }