]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commit
usb: dwc3: gadget: Disable GUSB2PHYCFG.SUSPHY for End Transfer
authorThinh Nguyen <Thinh.Nguyen@synopsys.com>
Thu, 10 Nov 2022 01:58:50 +0000 (17:58 -0800)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Wed, 14 Dec 2022 13:02:53 +0000 (14:02 +0100)
commit76ed3ae788794dec4103248e0e886f2814d9d4a3
tree16c21c7aee7daf2f597c6a1c274ef1325cd26fad
parenta9a2ef81f47da3ff16a142a72edae4e24a7ecfb7
usb: dwc3: gadget: Disable GUSB2PHYCFG.SUSPHY for End Transfer

[ Upstream commit 3aa07f72894d209fcf922ad686cbb28cf005aaad ]

If there's a disconnection while operating in eSS, there may be a delay
in VBUS drop response from the connector. In that case, the internal
link state may drop to operate in usb2 speed while the controller thinks
the VBUS is still high. The driver must make sure to disable
GUSB2PHYCFG.SUSPHY when sending endpoint command while in usb2 speed.
The End Transfer command may be called, and only that command needs to
go through at this point. Let's keep it simple and unconditionally
disable GUSB2PHYCFG.SUSPHY whenever we issue the command.

This scenario is not seen in real hardware. In a rare case, our
prototype type-c controller/interface may have a slow response
triggerring this issue.

Signed-off-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
Link: https://lore.kernel.org/r/5651117207803c26e2f22ddf4e5ce9e865dcf7c7.1668045468.git.Thinh.Nguyen@synopsys.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
(cherry picked from commit b398832893c895f348801a29db6b2cfd1f67438f)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
drivers/usb/dwc3/gadget.c