]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit
xhci: Add quirk to workaround the errata seen on Cavium Thunder-X2 Soc
authorCherian, George <George.Cherian@cavium.com>
Fri, 7 Dec 2018 09:21:59 +0000 (17:21 +0800)
committerKleber Sacilotto de Souza <kleber.souza@canonical.com>
Mon, 14 Jan 2019 09:28:55 +0000 (09:28 +0000)
commit8bebfb4f9fa93e6a4ff86a74619f4ff53d25fa34
treede984fde960aa55baf305d3198c8624bdd6e8308
parent62efdaa8a0b1fb390658a65f23aec38bdce878a0
xhci: Add quirk to workaround the errata seen on Cavium Thunder-X2 Soc

BugLink: http://bugs.launchpad.net/bugs/1806534
Implement workaround for ThunderX2 Errata-129 (documented in
CN99XX Known Issues" available at Cavium support site).
As per ThunderX2errata-129, USB 2 device may come up as USB 1
if a connection to a USB 1 device is followed by another connection to
a USB 2 device, the link will come up as USB 1 for the USB 2 device.

Resolution: Reset the PHY after the USB 1 device is disconnected.
The PHY reset sequence is done using private registers in XHCI register
space. After the PHY is reset we check for the PLL lock status and retry
the operation if it fails. From our tests, retrying 4 times is sufficient.

Add a new quirk flag XHCI_RESET_PLL_ON_DISCONNECT to invoke the workaround
in handle_xhci_port_status().

Cc: stable@vger.kernel.org
Signed-off-by: George Cherian <george.cherian@cavium.com>
Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
(backported from commit 11644a7659529730eaf2f166efaabe7c3dc7af8c)
Signed-off-by: Ike Panhc <ike.pan@canonical.com>
Acked-by: Stefan Bader <stefan.bader@canonical.com>
Acked-by: Kleber Souza <kleber.souza@canonical.com>
Signed-off-by: Khalid Elmously <khalid.elmously@canonical.com>
drivers/usb/host/xhci-pci.c
drivers/usb/host/xhci-ring.c
drivers/usb/host/xhci.h