linux-stable/drivers/usb/dwc3
Neil Armstrong 831494cb2c usb: dwc3: core: add support for disabling SS instances in park mode
[ Upstream commit 7ba6b09fda ]

In certain circumstances, the XHCI SuperSpeed instance in park mode
can fail to recover, thus on Amlogic G12A/G12B/SM1 SoCs when there is high
load on the single XHCI SuperSpeed instance, the controller can crash like:
 xhci-hcd xhci-hcd.0.auto: xHCI host not responding to stop endpoint command.
 xhci-hcd xhci-hcd.0.auto: Host halt failed, -110
 xhci-hcd xhci-hcd.0.auto: xHCI host controller not responding, assume dead
 xhci-hcd xhci-hcd.0.auto: xHCI host not responding to stop endpoint command.
 hub 2-1.1:1.0: hub_ext_port_status failed (err = -22)
 xhci-hcd xhci-hcd.0.auto: HC died; cleaning up
 usb 2-1.1-port1: cannot reset (err = -22)

Setting the PARKMODE_DISABLE_SS bit in the DWC3_USB3_GUCTL1 mitigates
the issue. The bit is described as :
"When this bit is set to '1' all SS bus instances in park mode are disabled"

Synopsys explains:
The GUCTL1.PARKMODE_DISABLE_SS is only available in
dwc_usb3 controller running in host mode.
This should not be set for other IPs.
This can be disabled by default based on IP, but I recommend to have a
property to enable this feature for devices that need this.

CC: Dongjin Kim <tobetter@gmail.com>
Cc: Jianxin Pan <jianxin.pan@amlogic.com>
Cc: Thinh Nguyen <thinhn@synopsys.com>
Cc: Jun Li <lijun.kernel@gmail.com>
Reported-by: Tim <elatllat@gmail.com>
Signed-off-by: Neil Armstrong <narmstrong@baylibre.com>
Signed-off-by: Felipe Balbi <balbi@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-04-17 10:48:41 +02:00
..
core.c usb: dwc3: core: add support for disabling SS instances in park mode 2020-04-17 10:48:41 +02:00
core.h usb: dwc3: core: add support for disabling SS instances in park mode 2020-04-17 10:48:41 +02:00
debug.h usb: dwc3: debugfs: Properly print/set link state for HS 2019-12-13 08:51:45 +01:00
debugfs.c usb: dwc3: debugfs: Properly print/set link state for HS 2019-12-13 08:51:45 +01:00
drd.c
dwc3-exynos.c
dwc3-haps.c
dwc3-keystone.c
dwc3-of-simple.c
dwc3-omap.c
dwc3-pci.c usb: dwc3: pci: add ID for the Intel Comet Lake -V variant 2020-02-01 09:37:01 +00:00
dwc3-qcom.c
dwc3-st.c
ep0.c usb: dwc3: ep0: Clear started flag on completion 2019-12-17 20:34:45 +01:00
gadget.c usb: dwc3: don't set gadget->is_otg flag 2020-04-13 10:45:16 +02:00
gadget.h usb: dwc3: gadget: introduce cancelled_list 2019-07-03 13:14:44 +02:00
host.c
io.h
Kconfig usb: dwc3: Allow building USB_DWC3_QCOM without EXTCON 2020-01-27 14:51:22 +01:00
Makefile
trace.c
trace.h
ulpi.c