mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-29 23:53:55 +08:00
usb: dwc3: soft reset to it's own function
So it can be called from other places later. Signed-off-by: Heikki Krogerus <heikki.krogerus@linux.intel.com> Acked-by: David Cohen <david.a.cohen@linux.intel.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
parent
2917e71815
commit
c5cc74e8c1
@ -116,6 +116,33 @@ static int dwc3_core_soft_reset(struct dwc3 *dwc)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* dwc3_soft_reset - Issue soft reset
|
||||||
|
* @dwc: Pointer to our controller context structure
|
||||||
|
*/
|
||||||
|
static int dwc3_soft_reset(struct dwc3 *dwc)
|
||||||
|
{
|
||||||
|
unsigned long timeout;
|
||||||
|
u32 reg;
|
||||||
|
|
||||||
|
timeout = jiffies + msecs_to_jiffies(500);
|
||||||
|
dwc3_writel(dwc->regs, DWC3_DCTL, DWC3_DCTL_CSFTRST);
|
||||||
|
do {
|
||||||
|
reg = dwc3_readl(dwc->regs, DWC3_DCTL);
|
||||||
|
if (!(reg & DWC3_DCTL_CSFTRST))
|
||||||
|
break;
|
||||||
|
|
||||||
|
if (time_after(jiffies, timeout)) {
|
||||||
|
dev_err(dwc->dev, "Reset Timed Out\n");
|
||||||
|
return -ETIMEDOUT;
|
||||||
|
}
|
||||||
|
|
||||||
|
cpu_relax();
|
||||||
|
} while (true);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* dwc3_free_one_event_buffer - Frees one event buffer
|
* dwc3_free_one_event_buffer - Frees one event buffer
|
||||||
* @dwc: Pointer to our controller context structure
|
* @dwc: Pointer to our controller context structure
|
||||||
@ -438,7 +465,6 @@ static void dwc3_phy_setup(struct dwc3 *dwc)
|
|||||||
*/
|
*/
|
||||||
static int dwc3_core_init(struct dwc3 *dwc)
|
static int dwc3_core_init(struct dwc3 *dwc)
|
||||||
{
|
{
|
||||||
unsigned long timeout;
|
|
||||||
u32 hwparams4 = dwc->hwparams.hwparams4;
|
u32 hwparams4 = dwc->hwparams.hwparams4;
|
||||||
u32 reg;
|
u32 reg;
|
||||||
int ret;
|
int ret;
|
||||||
@ -466,21 +492,9 @@ static int dwc3_core_init(struct dwc3 *dwc)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* issue device SoftReset too */
|
/* issue device SoftReset too */
|
||||||
timeout = jiffies + msecs_to_jiffies(500);
|
ret = dwc3_soft_reset(dwc);
|
||||||
dwc3_writel(dwc->regs, DWC3_DCTL, DWC3_DCTL_CSFTRST);
|
if (ret)
|
||||||
do {
|
goto err0;
|
||||||
reg = dwc3_readl(dwc->regs, DWC3_DCTL);
|
|
||||||
if (!(reg & DWC3_DCTL_CSFTRST))
|
|
||||||
break;
|
|
||||||
|
|
||||||
if (time_after(jiffies, timeout)) {
|
|
||||||
dev_err(dwc->dev, "Reset Timed Out\n");
|
|
||||||
ret = -ETIMEDOUT;
|
|
||||||
goto err0;
|
|
||||||
}
|
|
||||||
|
|
||||||
cpu_relax();
|
|
||||||
} while (true);
|
|
||||||
|
|
||||||
ret = dwc3_core_soft_reset(dwc);
|
ret = dwc3_core_soft_reset(dwc);
|
||||||
if (ret)
|
if (ret)
|
||||||
|
Loading…
Reference in New Issue
Block a user