| From 3c128781d8da463761495aaf8898c9ecb4e71528 Mon Sep 17 00:00:00 2001 |
| From: Sandeep Singh <sandeep.singh@amd.com> |
| Date: Wed, 12 May 2021 11:08:16 +0300 |
| Subject: xhci: Add reset resume quirk for AMD xhci controller. |
| |
| From: Sandeep Singh <sandeep.singh@amd.com> |
| |
| commit 3c128781d8da463761495aaf8898c9ecb4e71528 upstream. |
| |
| One of AMD xhci controller require reset on resume. |
| Occasionally AMD xhci controller does not respond to |
| Stop endpoint command. |
| Once the issue happens controller goes into bad state |
| and in that case controller needs to be reset. |
| |
| Cc: <stable@vger.kernel.org> |
| Signed-off-by: Sandeep Singh <sandeep.singh@amd.com> |
| Signed-off-by: Mathias Nyman <mathias.nyman@linux.intel.com> |
| Link: https://lore.kernel.org/r/20210512080816.866037-6-mathias.nyman@linux.intel.com |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/usb/host/xhci-pci.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/usb/host/xhci-pci.c |
| +++ b/drivers/usb/host/xhci-pci.c |
| @@ -167,8 +167,10 @@ static void xhci_pci_quirks(struct devic |
| (pdev->device == 0x15e0 || pdev->device == 0x15e1)) |
| xhci->quirks |= XHCI_SNPS_BROKEN_SUSPEND; |
| |
| - if (pdev->vendor == PCI_VENDOR_ID_AMD && pdev->device == 0x15e5) |
| + if (pdev->vendor == PCI_VENDOR_ID_AMD && pdev->device == 0x15e5) { |
| xhci->quirks |= XHCI_DISABLE_SPARSE; |
| + xhci->quirks |= XHCI_RESET_ON_RESUME; |
| + } |
| |
| if (pdev->vendor == PCI_VENDOR_ID_AMD) |
| xhci->quirks |= XHCI_TRUST_TX_LENGTH; |