usb: dwc2: Fix dwc2_hsotg_core_init_disconnected()
We should call dwc2_hsotg_enqueue_setup() after properly setting lx_state. Because it may cause error-out from dwc2_hsotg_enqueue_setup() due to wrong value in lx_state. Issue can be reproduced by loading driver while connected A-Connector (start in A-HOST mode) then disconnect A-Connector to switch to B-DEVICE. Acked-by: John Youn <johnyoun@synopsys.com> Signed-off-by: Vardan Mikayelyan <mvardan@synopsys.com> Signed-off-by: Grigor Tovmasyan <tovmasya@synopsys.com> Signed-off-by: Felipe Balbi <felipe.balbi@linux.intel.com>
This commit is contained in:
parent
9e95a66cce
commit
755d739534
|
@ -3381,12 +3381,6 @@ void dwc2_hsotg_core_init_disconnected(struct dwc2_hsotg *hsotg,
|
||||||
dwc2_writel(dwc2_hsotg_ep0_mps(hsotg->eps_out[0]->ep.maxpacket) |
|
dwc2_writel(dwc2_hsotg_ep0_mps(hsotg->eps_out[0]->ep.maxpacket) |
|
||||||
DXEPCTL_USBACTEP, hsotg->regs + DIEPCTL0);
|
DXEPCTL_USBACTEP, hsotg->regs + DIEPCTL0);
|
||||||
|
|
||||||
dwc2_hsotg_enqueue_setup(hsotg);
|
|
||||||
|
|
||||||
dev_dbg(hsotg->dev, "EP0: DIEPCTL0=0x%08x, DOEPCTL0=0x%08x\n",
|
|
||||||
dwc2_readl(hsotg->regs + DIEPCTL0),
|
|
||||||
dwc2_readl(hsotg->regs + DOEPCTL0));
|
|
||||||
|
|
||||||
/* clear global NAKs */
|
/* clear global NAKs */
|
||||||
val = DCTL_CGOUTNAK | DCTL_CGNPINNAK;
|
val = DCTL_CGOUTNAK | DCTL_CGNPINNAK;
|
||||||
if (!is_usb_reset)
|
if (!is_usb_reset)
|
||||||
|
@ -3397,6 +3391,12 @@ void dwc2_hsotg_core_init_disconnected(struct dwc2_hsotg *hsotg,
|
||||||
mdelay(3);
|
mdelay(3);
|
||||||
|
|
||||||
hsotg->lx_state = DWC2_L0;
|
hsotg->lx_state = DWC2_L0;
|
||||||
|
|
||||||
|
dwc2_hsotg_enqueue_setup(hsotg);
|
||||||
|
|
||||||
|
dev_dbg(hsotg->dev, "EP0: DIEPCTL0=0x%08x, DOEPCTL0=0x%08x\n",
|
||||||
|
dwc2_readl(hsotg->regs + DIEPCTL0),
|
||||||
|
dwc2_readl(hsotg->regs + DOEPCTL0));
|
||||||
}
|
}
|
||||||
|
|
||||||
static void dwc2_hsotg_core_disconnect(struct dwc2_hsotg *hsotg)
|
static void dwc2_hsotg_core_disconnect(struct dwc2_hsotg *hsotg)
|
||||||
|
|
Loading…
Reference in New Issue