Loading drivers/usb/dwc3/core.c +5 −0 Original line number Original line Diff line number Diff line Loading @@ -178,6 +178,11 @@ static int dwc3_core_reset(struct dwc3 *dwc) reg = dwc3_readl(dwc->regs, DWC3_GUSB3PIPECTL(0)); reg = dwc3_readl(dwc->regs, DWC3_GUSB3PIPECTL(0)); reg &= ~DWC3_GUSB3PIPECTL_DELAYP1TRANS; reg &= ~DWC3_GUSB3PIPECTL_DELAYP1TRANS; /* core exits U1/U2/U3 only in PHY power state P1/P2/P3 respectively */ if (dwc->revision <= DWC3_REVISION_310A) reg |= DWC3_GUSB3PIPECTL_UX_EXIT_IN_PX; dwc3_writel(dwc->regs, DWC3_GUSB3PIPECTL(0), reg); dwc3_writel(dwc->regs, DWC3_GUSB3PIPECTL(0), reg); dwc3_notify_event(dwc, DWC3_CONTROLLER_RESET_EVENT, 0); dwc3_notify_event(dwc, DWC3_CONTROLLER_RESET_EVENT, 0); Loading drivers/usb/dwc3/core.h +2 −0 Original line number Original line Diff line number Diff line Loading @@ -213,6 +213,7 @@ /* Global USB3 PIPE Control Register */ /* Global USB3 PIPE Control Register */ #define DWC3_GUSB3PIPECTL_PHYSOFTRST (1 << 31) #define DWC3_GUSB3PIPECTL_PHYSOFTRST (1 << 31) #define DWC3_GUSB3PIPECTL_U2SSINP3OK (1 << 29) #define DWC3_GUSB3PIPECTL_U2SSINP3OK (1 << 29) #define DWC3_GUSB3PIPECTL_UX_EXIT_IN_PX (1 << 27) #define DWC3_GUSB3PIPECTL_REQP1P2P3 (1 << 24) #define DWC3_GUSB3PIPECTL_REQP1P2P3 (1 << 24) #define DWC3_GUSB3PIPECTL_DEP1P2P3(n) ((n) << 19) #define DWC3_GUSB3PIPECTL_DEP1P2P3(n) ((n) << 19) #define DWC3_GUSB3PIPECTL_DEP1P2P3_MASK DWC3_GUSB3PIPECTL_DEP1P2P3(7) #define DWC3_GUSB3PIPECTL_DEP1P2P3_MASK DWC3_GUSB3PIPECTL_DEP1P2P3(7) Loading Loading @@ -919,6 +920,7 @@ struct dwc3 { #define DWC3_REVISION_260A 0x5533260a #define DWC3_REVISION_260A 0x5533260a #define DWC3_REVISION_270A 0x5533270a #define DWC3_REVISION_270A 0x5533270a #define DWC3_REVISION_280A 0x5533280a #define DWC3_REVISION_280A 0x5533280a #define DWC3_REVISION_310A 0x5533310a /* /* * NOTICE: we're using bit 31 as a "is usb 3.1" flag. This is really * NOTICE: we're using bit 31 as a "is usb 3.1" flag. This is really Loading Loading
drivers/usb/dwc3/core.c +5 −0 Original line number Original line Diff line number Diff line Loading @@ -178,6 +178,11 @@ static int dwc3_core_reset(struct dwc3 *dwc) reg = dwc3_readl(dwc->regs, DWC3_GUSB3PIPECTL(0)); reg = dwc3_readl(dwc->regs, DWC3_GUSB3PIPECTL(0)); reg &= ~DWC3_GUSB3PIPECTL_DELAYP1TRANS; reg &= ~DWC3_GUSB3PIPECTL_DELAYP1TRANS; /* core exits U1/U2/U3 only in PHY power state P1/P2/P3 respectively */ if (dwc->revision <= DWC3_REVISION_310A) reg |= DWC3_GUSB3PIPECTL_UX_EXIT_IN_PX; dwc3_writel(dwc->regs, DWC3_GUSB3PIPECTL(0), reg); dwc3_writel(dwc->regs, DWC3_GUSB3PIPECTL(0), reg); dwc3_notify_event(dwc, DWC3_CONTROLLER_RESET_EVENT, 0); dwc3_notify_event(dwc, DWC3_CONTROLLER_RESET_EVENT, 0); Loading
drivers/usb/dwc3/core.h +2 −0 Original line number Original line Diff line number Diff line Loading @@ -213,6 +213,7 @@ /* Global USB3 PIPE Control Register */ /* Global USB3 PIPE Control Register */ #define DWC3_GUSB3PIPECTL_PHYSOFTRST (1 << 31) #define DWC3_GUSB3PIPECTL_PHYSOFTRST (1 << 31) #define DWC3_GUSB3PIPECTL_U2SSINP3OK (1 << 29) #define DWC3_GUSB3PIPECTL_U2SSINP3OK (1 << 29) #define DWC3_GUSB3PIPECTL_UX_EXIT_IN_PX (1 << 27) #define DWC3_GUSB3PIPECTL_REQP1P2P3 (1 << 24) #define DWC3_GUSB3PIPECTL_REQP1P2P3 (1 << 24) #define DWC3_GUSB3PIPECTL_DEP1P2P3(n) ((n) << 19) #define DWC3_GUSB3PIPECTL_DEP1P2P3(n) ((n) << 19) #define DWC3_GUSB3PIPECTL_DEP1P2P3_MASK DWC3_GUSB3PIPECTL_DEP1P2P3(7) #define DWC3_GUSB3PIPECTL_DEP1P2P3_MASK DWC3_GUSB3PIPECTL_DEP1P2P3(7) Loading Loading @@ -919,6 +920,7 @@ struct dwc3 { #define DWC3_REVISION_260A 0x5533260a #define DWC3_REVISION_260A 0x5533260a #define DWC3_REVISION_270A 0x5533270a #define DWC3_REVISION_270A 0x5533270a #define DWC3_REVISION_280A 0x5533280a #define DWC3_REVISION_280A 0x5533280a #define DWC3_REVISION_310A 0x5533310a /* /* * NOTICE: we're using bit 31 as a "is usb 3.1" flag. This is really * NOTICE: we're using bit 31 as a "is usb 3.1" flag. This is really Loading