summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorForest Crossman <cyrozap@gmail.com>2020-07-17 06:27:34 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-07-29 07:42:56 +0200
commit70db3c5ec288d26ffc683911571cd7dac1cd50d8 (patch)
tree14356f3b853d83a1761b5422b8511a3331278b20
parentec9b262630327e0452de4e27f234f2b6a11e844b (diff)
downloadlinux-stable-70db3c5ec288d26ffc683911571cd7dac1cd50d8.tar.gz
linux-stable-70db3c5ec288d26ffc683911571cd7dac1cd50d8.tar.bz2
linux-stable-70db3c5ec288d26ffc683911571cd7dac1cd50d8.zip
usb: xhci: Fix ASM2142/ASM3142 DMA addressing
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>
-rw-r--r--drivers/usb/host/xhci-pci.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
index c01a0d1e8b5c..d4e29039305b 100644
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
@@ -235,6 +235,9 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
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)