linux_dsm_epyc7002/drivers/usb
Mathias Nyman b8c3b71808 usb: xhci: Don't try to recover an endpoint if port is in error state.
A USB3 device needs to be reset and re-enumarated if the port it
connects to goes to a error state, with link state inactive.

There is no use in trying to recover failed transactions by resetting
endpoints at this stage. Tests show that in rare cases, after multiple
endpoint resets of a roothub port the whole host controller might stop
completely.

Several retries to recover from transaction error can happen as
it can take a long time before the hub thread discovers the USB3
port error and inactive link.

We can't reliably detect the port error from slot or endpoint context
due to a limitation in xhci, see xhci specs section 4.8.3:
"There are several cases where the EP State field in the Output
Endpoint Context may not reflect the current state of an endpoint"
and
"Software should maintain an accurate value for EP State, by tracking it
with an internal variable that is driven by Events and Doorbell accesses"

Same appears to be true for slot state.

set a flag to the corresponding slot if a USB3 roothub port link goes
inactive to prevent both queueing new URBs and resetting endpoints.

Reported-by: Rapolu Chiranjeevi <chiranjeevi.rapolu@intel.com>
Tested-by: Rapolu Chiranjeevi <chiranjeevi.rapolu@intel.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2019-06-18 18:14:38 +02:00
..
atm
c67x00
chipidea usb: chipidea: udc: workaround for endpoint conflict issue 2019-06-17 15:08:33 +02:00
class
common
core USB: Fix chipmunk-like voice when using Logitech C270 for recording audio. 2019-06-05 11:52:42 +02:00
dwc2 usb: gadget: dwc2: fix zlp handling 2019-06-06 13:51:57 +03:00
dwc3
early
gadget usb: gadget: udc: lpc32xx: fix return value check in lpc32xx_udc_probe() 2019-06-06 13:51:57 +03:00
host usb: xhci: Don't try to recover an endpoint if port is in error state. 2019-06-18 18:14:38 +02:00
image
isp1760
misc USB: rio500: simplify locking 2019-05-21 10:11:14 +02:00
mon
mtu3 usb: mtu3: fix up undefined reference to usb_debug_root 2019-05-21 10:08:56 +02:00
musb
phy usb: phy: mxs: Disable external charger detect in mxs_phy_hw_init() 2019-06-06 13:51:57 +03:00
renesas_usbhs
roles
serial USB: serial: option: add Telit 0x1260 and 0x1261 compositions 2019-05-21 11:27:24 +02:00
storage USB: usb-storage: Add new ID to ums-realtek 2019-06-05 11:52:42 +02:00
typec usb: typec: Make sure an alt mode exist before getting its partner 2019-06-12 17:13:02 +02:00
usbip usbip: usbip_host: fix stub_dev lock context imbalance regression 2019-05-29 13:26:32 -07:00
wusbcore
Kconfig
Makefile
usb-skeleton.c