From bab2f1e4e90675af7ea6b48b5c28eb94e22cecd7 Mon Sep 17 00:00:00 2001 From: Jonathan Bell Date: Thu, 13 Jul 2023 15:06:54 +0100 Subject: [PATCH 0483/1085] usb: xhci: borrow upstream TRB_FETCH quirk on VL805 hosts This reimplements 5a57342 usb: xhci: add VLI_TRB_CACHE_BUG quirk The downstream implementation required a fair bit of driver surgery to allow for truncated ring segments, which needed to shrink by a small amount to avoid the cache prefetcher from reading off the end of one segment and into another. An upstream implementation for a similar bug on a different controller just doubles the size of the memory allocated for ring segments, which is a bit more wasteful (+4K per allocation) but means less code churn. Signed-off-by: Jonathan Bell --- drivers/usb/host/xhci-pci.c | 1 + 1 file changed, 1 insertion(+) --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c @@ -494,6 +494,7 @@ static void xhci_pci_quirks(struct devic xhci->quirks |= XHCI_LPM_SUPPORT; xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS; xhci->quirks |= XHCI_AVOID_DQ_ON_LINK; + xhci->quirks |= XHCI_ZHAOXIN_TRB_FETCH; } if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&