[ Sasha's backport helper bot ] Hi, Summary of potential issues: ⚠️ Found matching upstream commit but patch is missing proper reference to it Found matching upstream commit: c133ec0e5717868c9967fa3df92a55e537b1aead Status in newer kernel trees: 6.13.y | Present (different SHA1: b273b3dc3b5c) 6.12.y | Present (different SHA1: 43115ac4e752) 6.6.y | Present (different SHA1: 2a3d68873fc2) 6.1.y | Present (different SHA1: bd139706d043) 5.15.y | Present (different SHA1: e256a546d03d) Note: The patch differs from the upstream commit: --- 1: c133ec0e57178 ! 1: 3d064d3287ee6 usb: xhci: Enable the TRB overfetch quirk on VIA VL805 @@ Commit message Signed-off-by: Mathias Nyman <mathias.nyman@xxxxxxxxxxxxxxx> Link: https://lore.kernel.org/r/20250225095927.2512358-2-mathias.nyman@xxxxxxxxxxxxxxx Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> + (cherry picked from commit c133ec0e5717868c9967fa3df92a55e537b1aead) + [ Michal: merge conflict with white space and an unrelated quirk ] + Signed-off-by: Michal Pecio <michal.pecio@xxxxxxxxx> ## drivers/usb/host/xhci-mem.c ## @@ drivers/usb/host/xhci-mem.c: int xhci_mem_init(struct xhci_hcd *xhci, gfp_t flags) @@ drivers/usb/host/xhci-mem.c: int xhci_mem_init(struct xhci_hcd *xhci, gfp_t flag ## drivers/usb/host/xhci-pci.c ## @@ - #define PCI_DEVICE_ID_ETRON_EJ168 0x7023 - #define PCI_DEVICE_ID_ETRON_EJ188 0x7052 + #define PCI_DEVICE_ID_EJ168 0x7023 + #define PCI_DEVICE_ID_EJ188 0x7052 +#define PCI_DEVICE_ID_VIA_VL805 0x3483 + - #define PCI_DEVICE_ID_INTEL_LYNXPOINT_XHCI 0x8c31 - #define PCI_DEVICE_ID_INTEL_LYNXPOINT_LP_XHCI 0x9c31 + #define PCI_DEVICE_ID_INTEL_LYNXPOINT_XHCI 0x8c31 + #define PCI_DEVICE_ID_INTEL_LYNXPOINT_LP_XHCI 0x9c31 #define PCI_DEVICE_ID_INTEL_WILDCATPOINT_LP_XHCI 0x9cb1 @@ drivers/usb/host/xhci-pci.c: static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) pdev->device == 0x3432) xhci->quirks |= XHCI_BROKEN_STREAMS; -- if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3483) +- if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3483) { + if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == PCI_DEVICE_ID_VIA_VL805) { xhci->quirks |= XHCI_LPM_SUPPORT; + xhci->quirks |= XHCI_TRB_OVERFETCH; -+ } + xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS; + } - if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA && - pdev->device == PCI_DEVICE_ID_ASMEDIA_1042_XHCI) { @@ drivers/usb/host/xhci-pci.c: static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) if (pdev->device == 0x9202) { @@ drivers/usb/host/xhci-pci.c: static void xhci_pci_quirks(struct device *dev, str + xhci->quirks |= XHCI_TRB_OVERFETCH; } - if (pdev->vendor == PCI_VENDOR_ID_CDNS && + /* xHC spec requires PCI devices to support D3hot and D3cold */ ## drivers/usb/host/xhci.h ## @@ drivers/usb/host/xhci.h: struct xhci_hcd { @@ drivers/usb/host/xhci.h: struct xhci_hcd { -#define XHCI_ZHAOXIN_TRB_FETCH BIT_ULL(45) +#define XHCI_TRB_OVERFETCH BIT_ULL(45) #define XHCI_ZHAOXIN_HOST BIT_ULL(46) - #define XHCI_WRITE_64_HI_LO BIT_ULL(47) - #define XHCI_CDNS_SCTX_QUIRK BIT_ULL(48) + + unsigned int num_active_eps; --- Results of testing on various branches: | Branch | Patch Apply | Build Test | |---------------------------|-------------|------------| | stable/linux-5.10.y | Success | Success |