From: Manoj Iyer <manoj.iyer@xxxxxxxxxxxxx>
USB 3.0 devices show up as high-speed devices on powerup, after an
s3 cycle they are correctly recognized as SuperSpeed. At powerup
unconditionally switch the port to xHCI like we do when we resume
from suspend.
BugLink: http://bugs.launchpad.net/bugs/1000424
Signed-off-by: Manoj Iyer <manoj.iyer@xxxxxxxxxxxxx>
---
drivers/usb/host/xhci-pci.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
index 9bfd4ca11..5c8dbea 100644
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
@@ -48,6 +48,14 @@ static int xhci_pci_reinit(struct xhci_hcd *xhci, struct pci_dev *pdev)
if (!pci_set_mwi(pdev))
xhci_dbg(xhci, "MWI active\n");
+ /*
+ * USB SuperSpeed ports are recognized as HighSpeed ports on powerup
+ * unconditionally switch the ports to xHCI like we do when resume
+ * from suspend.
+ */
+ if (usb_is_intel_switchable_xhci(pdev))
+ usb_enable_xhci_ports(pdev);
+