usb: dwc3: gadget: disable U1/U2 on disconnect
If we get a disconnect IRQ, we should take the core out of low power mode so we can reconnect afterwards. Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
parent
fcc023c726
commit
c4430a2694
1 changed files with 2 additions and 5 deletions
|
@ -1906,11 +1906,9 @@ static void dwc3_clear_stall_all_ep(struct dwc3 *dwc)
|
||||||
|
|
||||||
static void dwc3_gadget_disconnect_interrupt(struct dwc3 *dwc)
|
static void dwc3_gadget_disconnect_interrupt(struct dwc3 *dwc)
|
||||||
{
|
{
|
||||||
|
int reg;
|
||||||
|
|
||||||
dev_vdbg(dwc->dev, "%s\n", __func__);
|
dev_vdbg(dwc->dev, "%s\n", __func__);
|
||||||
#if 0
|
|
||||||
XXX
|
|
||||||
U1/U2 is powersave optimization. Skip it for now. Anyway we need to
|
|
||||||
enable it before we can disable it.
|
|
||||||
|
|
||||||
reg = dwc3_readl(dwc->regs, DWC3_DCTL);
|
reg = dwc3_readl(dwc->regs, DWC3_DCTL);
|
||||||
reg &= ~DWC3_DCTL_INITU1ENA;
|
reg &= ~DWC3_DCTL_INITU1ENA;
|
||||||
|
@ -1918,7 +1916,6 @@ static void dwc3_gadget_disconnect_interrupt(struct dwc3 *dwc)
|
||||||
|
|
||||||
reg &= ~DWC3_DCTL_INITU2ENA;
|
reg &= ~DWC3_DCTL_INITU2ENA;
|
||||||
dwc3_writel(dwc->regs, DWC3_DCTL, reg);
|
dwc3_writel(dwc->regs, DWC3_DCTL, reg);
|
||||||
#endif
|
|
||||||
|
|
||||||
dwc3_stop_active_transfers(dwc);
|
dwc3_stop_active_transfers(dwc);
|
||||||
dwc3_disconnect_gadget(dwc);
|
dwc3_disconnect_gadget(dwc);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue