| From: Kai-Heng Feng <kai.heng.feng@canonical.com> |
| Date: Fri, 20 Apr 2018 16:52:50 +0300 |
| Subject: xhci: Fix USB ports for Dell Inspiron 5775 |
| |
| commit 621faf4f6a181b6e012c1d1865213f36f4159b7f upstream. |
| |
| The Dell Inspiron 5775 is a Raven Ridge. The Enable Slot command timed |
| out when a USB device gets plugged: |
| [ 212.156326] xhci_hcd 0000:03:00.3: Error while assigning device slot ID |
| [ 212.156340] xhci_hcd 0000:03:00.3: Max number of devices this xHCI host supports is 64. |
| [ 212.156348] usb usb2-port3: couldn't allocate usb_device |
| |
| AMD suggests that a delay before xHC suspends can fix the issue. |
| |
| I can confirm it fixes the issue, so use the suspend delay quirk for |
| Raven Ridge's xHC. |
| |
| Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com> |
| Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Signed-off-by: Ben Hutchings <ben@decadent.org.uk> |
| --- |
| drivers/usb/host/xhci-pci.c | 5 ++++- |
| 1 file changed, 4 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/usb/host/xhci-pci.c |
| +++ b/drivers/usb/host/xhci-pci.c |
| @@ -124,7 +124,10 @@ static void xhci_pci_quirks(struct devic |
| if (pdev->vendor == PCI_VENDOR_ID_AMD && usb_amd_find_chipset_info()) |
| xhci->quirks |= XHCI_AMD_PLL_FIX; |
| |
| - if (pdev->vendor == PCI_VENDOR_ID_AMD && pdev->device == 0x43bb) |
| + if (pdev->vendor == PCI_VENDOR_ID_AMD && |
| + (pdev->device == 0x15e0 || |
| + pdev->device == 0x15e1 || |
| + pdev->device == 0x43bb)) |
| xhci->quirks |= XHCI_SUSPEND_DELAY; |
| |
| if (pdev->vendor == PCI_VENDOR_ID_AMD) |