|
@@ -985,6 +985,22 @@ static int dwc3_core_init(struct dwc3 *dwc)
|
|
|
dwc3_writel(dwc->regs, DWC3_GUCTL1, reg);
|
|
|
}
|
|
|
|
|
|
+ if (dwc->dr_mode == USB_DR_MODE_HOST ||
|
|
|
+ dwc->dr_mode == USB_DR_MODE_OTG) {
|
|
|
+ reg = dwc3_readl(dwc->regs, DWC3_GUCTL);
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Enable Auto retry Feature to make the controller operating in
|
|
|
+ * Host mode on seeing transaction errors(CRC errors or internal
|
|
|
+ * overrun scenerios) on IN transfers to reply to the device
|
|
|
+ * with a non-terminating retry ACK (i.e, an ACK transcation
|
|
|
+ * packet with Retry=1 & Nump != 0)
|
|
|
+ */
|
|
|
+ reg |= DWC3_GUCTL_HSTINAUTORETRY;
|
|
|
+
|
|
|
+ dwc3_writel(dwc->regs, DWC3_GUCTL, reg);
|
|
|
+ }
|
|
|
+
|
|
|
/*
|
|
|
* Must config both number of packets and max burst settings to enable
|
|
|
* RX and/or TX threshold.
|