usb: xhci: Fix ASM2142/ASM3142 DMA addressing
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>
This commit is contained in:
Родитель
5ce1a24dd9
Коммит
dbb0897e80
|
@ -265,6 +265,9 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
|
||||||
if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
|
if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
|
||||||
pdev->device == 0x1142)
|
pdev->device == 0x1142)
|
||||||
xhci->quirks |= XHCI_TRUST_TX_LENGTH;
|
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 &&
|
if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
|
||||||
pdev->device == PCI_DEVICE_ID_ASMEDIA_1042A_XHCI)
|
pdev->device == PCI_DEVICE_ID_ASMEDIA_1042A_XHCI)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче