| From dbb0897e805f2ab1b8bc358f6c3d878a376b8897 Mon Sep 17 00:00:00 2001 |
| From: Forest Crossman <cyrozap@gmail.com> |
| Date: Fri, 17 Jul 2020 06:27:34 -0500 |
| Subject: usb: xhci: Fix ASM2142/ASM3142 DMA addressing |
| |
| From: Forest Crossman <cyrozap@gmail.com> |
| |
| commit dbb0897e805f2ab1b8bc358f6c3d878a376b8897 upstream. |
| |
| The ASM2142/ASM3142 (same PCI IDs) does not support full 64-bit DMA |
| addresses, which can cause silent memory corruption or IOMMU errors on |
| platforms that use the upper bits. Add the XHCI_NO_64BIT_SUPPORT quirk |
| to fix this issue. |
| |
| Signed-off-by: Forest Crossman <cyrozap@gmail.com> |
| Cc: stable <stable@vger.kernel.org> |
| Link: https://lore.kernel.org/r/20200717112734.328432-1-cyrozap@gmail.com |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/usb/host/xhci-pci.c | 3 +++ |
| 1 file changed, 3 insertions(+) |
| |
| --- a/drivers/usb/host/xhci-pci.c |
| +++ b/drivers/usb/host/xhci-pci.c |
| @@ -213,6 +213,9 @@ static void xhci_pci_quirks(struct devic |
| if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA && |
| pdev->device == 0x1142) |
| xhci->quirks |= XHCI_TRUST_TX_LENGTH; |
| + if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA && |
| + pdev->device == 0x2142) |
| + xhci->quirks |= XHCI_NO_64BIT_SUPPORT; |
| |
| if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA && |
| pdev->device == PCI_DEVICE_ID_ASMEDIA_1042A_XHCI) |