diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c index 5a5ad4fe9a25..bc0fa13a5bc4 100644 --- a/drivers/usb/dwc3/core.c +++ b/drivers/usb/dwc3/core.c @@ -740,6 +740,10 @@ static int dwc3_core_init(struct dwc3 *dwc) if (ret) goto err0; #ifdef CONFIG_AMLOGIC_USB + reg = dwc3_readl(dwc->regs, DWC3_GUCTL1); + reg |= DWC3_GUCTL_NAKPERENHHS; + dwc3_writel(dwc->regs, DWC3_GUCTL1, reg); + reg = dwc3_readl(dwc->regs, DWC3_GUCTL); reg |= DWC3_GUCTL_USBHSTINAUTORETRYEN; dwc3_writel(dwc->regs, DWC3_GUCTL, reg); diff --git a/drivers/usb/dwc3/core.h b/drivers/usb/dwc3/core.h index bc851ca838f6..211bf715ef8b 100644 --- a/drivers/usb/dwc3/core.h +++ b/drivers/usb/dwc3/core.h @@ -159,6 +159,7 @@ #ifdef CONFIG_AMLOGIC_USB /* Global User Control Register */ #define DWC3_GUCTL_USBHSTINAUTORETRYEN (1 << 14) +#define DWC3_GUCTL_NAKPERENHHS (1 << 18) #endif /* Global Debug Queue/FIFO Space Available Register */