summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/usb/dwc2/gadget.c60
1 files changed, 30 insertions, 30 deletions
diff --git a/drivers/usb/dwc2/gadget.c b/drivers/usb/dwc2/gadget.c
index ef96481..bdda32c 100644
--- a/drivers/usb/dwc2/gadget.c
+++ b/drivers/usb/dwc2/gadget.c
@@ -2460,6 +2460,36 @@ irq_retry:
gintsts &= gintmsk;
+ if (gintsts & GINTSTS_RESETDET) {
+ dev_dbg(hsotg->dev, "%s: USBRstDet\n", __func__);
+
+ dwc2_writel(GINTSTS_RESETDET, hsotg->regs + GINTSTS);
+
+ /* This event must be used only if controller is suspended */
+ if (hsotg->lx_state == DWC2_L2) {
+ dwc2_exit_hibernation(hsotg, true);
+ hsotg->lx_state = DWC2_L0;
+ }
+ }
+
+ if (gintsts & (GINTSTS_USBRST | GINTSTS_RESETDET)) {
+
+ u32 usb_status = dwc2_readl(hsotg->regs + GOTGCTL);
+ u32 connected = hsotg->connected;
+
+ dev_dbg(hsotg->dev, "%s: USBRst\n", __func__);
+ dev_dbg(hsotg->dev, "GNPTXSTS=%08x\n",
+ dwc2_readl(hsotg->regs + GNPTXSTS));
+
+ dwc2_writel(GINTSTS_USBRST, hsotg->regs + GINTSTS);
+
+ /* Report disconnection if it is not already done. */
+ dwc2_hsotg_disconnect(hsotg);
+
+ if (usb_status & GOTGCTL_BSESVLD && connected)
+ dwc2_hsotg_core_init_disconnected(hsotg, true);
+ }
+
if (gintsts & GINTSTS_ENUMDONE) {
dwc2_writel(GINTSTS_ENUMDONE, hsotg->regs + GINTSTS);
@@ -2491,36 +2521,6 @@ irq_retry:
}
}
- if (gintsts & GINTSTS_RESETDET) {
- dev_dbg(hsotg->dev, "%s: USBRstDet\n", __func__);
-
- dwc2_writel(GINTSTS_RESETDET, hsotg->regs + GINTSTS);
-
- /* This event must be used only if controller is suspended */
- if (hsotg->lx_state == DWC2_L2) {
- dwc2_exit_hibernation(hsotg, true);
- hsotg->lx_state = DWC2_L0;
- }
- }
-
- if (gintsts & (GINTSTS_USBRST | GINTSTS_RESETDET)) {
-
- u32 usb_status = dwc2_readl(hsotg->regs + GOTGCTL);
- u32 connected = hsotg->connected;
-
- dev_dbg(hsotg->dev, "%s: USBRst\n", __func__);
- dev_dbg(hsotg->dev, "GNPTXSTS=%08x\n",
- dwc2_readl(hsotg->regs + GNPTXSTS));
-
- dwc2_writel(GINTSTS_USBRST, hsotg->regs + GINTSTS);
-
- /* Report disconnection if it is not already done. */
- dwc2_hsotg_disconnect(hsotg);
-
- if (usb_status & GOTGCTL_BSESVLD && connected)
- dwc2_hsotg_core_init_disconnected(hsotg, true);
- }
-
/* check both FIFOs */
if (gintsts & GINTSTS_NPTXFEMP) {
OpenPOWER on IntegriCloud