USB: DWC3: Issue device soft reset before core soft reset
authorPratyush Anand <pratyush.anand@st.com>
Thu, 21 Jun 2012 12:14:29 +0000 (17:44 +0530)
committerFelipe Balbi <balbi@ti.com>
Fri, 22 Jun 2012 10:22:46 +0000 (13:22 +0300)
Synopsys specification clearly states under section "Device Power-On or
Soft Reset" that DCTL.CSftRst=1 should be first step.  So, just follow
what specification says.

Signed-off-by: Pratyush Anand <pratyush.anand@st.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/dwc3/core.c

index ac151e9acf20652d43f7dcae301409237391c749..c34452a7304f9dec269ba64706ab999559e67eff 100644 (file)
@@ -335,8 +335,6 @@ static int __devinit dwc3_core_init(struct dwc3 *dwc)
        }
        dwc->revision = reg;
 
-       dwc3_core_soft_reset(dwc);
-
        /* issue device SoftReset too */
        timeout = jiffies + msecs_to_jiffies(500);
        dwc3_writel(dwc->regs, DWC3_DCTL, DWC3_DCTL_CSFTRST);
@@ -354,6 +352,8 @@ static int __devinit dwc3_core_init(struct dwc3 *dwc)
                cpu_relax();
        } while (true);
 
+       dwc3_core_soft_reset(dwc);
+
        dwc3_cache_hwparams(dwc);
 
        reg = dwc3_readl(dwc->regs, DWC3_GCTL);