diff options
author | Mathias Nyman <mathias.nyman@linux.intel.com> | 2021-12-10 14:16:53 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2021-12-16 01:48:37 +0300 |
commit | f59f93cd1d720809466c7fd5aa16a236156c672b (patch) | |
tree | c0e0683784e88c81b295bd65cb09b5f929b547f4 /tools/pcmcia | |
parent | a1f79504ceb3ffcd2b777e5ac84c97a0948c2dbd (diff) | |
download | linux-f59f93cd1d720809466c7fd5aa16a236156c672b.tar.xz |
usb: hub: avoid warm port reset during USB3 disconnect
During disconnect USB-3 ports often go via SS.Inactive link error state
before the missing terminations are noticed, and link finally goes to
RxDetect state
Avoid immediately warm-resetting ports in SS.Inactive state.
Let ports settle for a while and re-read the link status a few times 20ms
apart to see if the ports transitions out of SS.Inactive.
According to USB 3.x spec 7.5.2, a port in SS.Inactive should
automatically check for missing far-end receiver termination every
12 ms (SSInactiveQuietTimeout)
The futile multiple warm reset retries of a disconnected device takes
a lot of time, also the resetting of a removed devices has caused cases
where the reset bit got stuck for a long time on xHCI roothub.
This lead to issues in detecting new devices connected to the same port
shortly after.
Tested-by: Mark Pearson <markpearson@lenovo.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Link: https://lore.kernel.org/r/20211210111653.1378381-1-mathias.nyman@linux.intel.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'tools/pcmcia')
0 files changed, 0 insertions, 0 deletions