BACKPORT: FROMLIST: usb: dwc3: Set SUSPENDENABLE soon after phy init
After phy initialization, some phy operations can only be executed while in lower P states. Ensure GUSB3PIPECTL.SUSPENDENABLE and GUSB2PHYCFG.SUSPHY are set soon after initialization to avoid blocking phy ops. Previously the SUSPENDENABLE bits are only set after the controller initialization, which may not happen right away if there's no gadget driver or xhci driver bound. Revise this to clear SUSPENDENABLE bits only when there's mode switching (change in GCTL.PRTCAPDIR). Fixes: 6d735722 ("usb: dwc3: core: Prevent phy suspend during init") Cc: stable@vger.kernel.org Signed-off-by:Thinh Nguyen <Thinh.Nguyen@synopsys.com> Bug: 374242909 Bug: 359966146 Test: gadget enumeration Link: https://lore.kernel.org/linux-usb/633aef0afee7d56d2316f7cc3e1b2a6d518a8cc9.1738280911.git.Thinh.Nguyen@synopsys.com/ Change-Id: Ib2cb7c6f0f5c7082fa18155403633e36f589ebbc Signed-off-by:
Roy Luo <royluo@google.com>
Loading
Please register or sign in to comment