The resume operation of Phytium Px210 xHCI host would failed to restore state. Use the XHCI_RESET_ON_RESUME quirk to skip it and reset the controller after resume. Changlog: *v1 -> v2: Move the PCI_VENDOR_ID_PHYTIUM form pci_ids.h to xhci-pci.c v2 -> v3: Change "||" to "&&", that was a mistake. Co-developed-by: Chen Baozi <chenbaozi@xxxxxxxxxxxxxx> Signed-off-by: Chen Baozi <chenbaozi@xxxxxxxxxxxxxx> Co-developed-by: Wang Zhimin <wangzhimin1179@xxxxxxxxxxxxxx> Signed-off-by: Wang Zhimin <wangzhimin1179@xxxxxxxxxxxxxx> Co-developed-by: Chen Zhenhua <chenzhenhua@xxxxxxxxxxxxxx> Signed-off-by: Chen Zhenhua <chenzhenhua@xxxxxxxxxxxxxx> Co-developed-by: Wang Yinfeng <wangyinfeng@xxxxxxxxxxxxxx> Signed-off-by: Wang Yinfeng <wangyinfeng@xxxxxxxxxxxxxx> Co-developed-by: Jiakun Shuai <shuaijiakun1288@xxxxxxxxxxxxxx> Signed-off-by: Jiakun Shuai <shuaijiakun1288@xxxxxxxxxxxxxx> Signed-off-by: WangYuli <wangyuli@xxxxxxxxxxxxx> --- drivers/usb/host/xhci-pci.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c index b5705ed01d83..bfb8f0699475 100644 --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c @@ -55,6 +55,9 @@ #define PCI_DEVICE_ID_INTEL_ALDER_LAKE_PCH_XHCI 0x51ed #define PCI_DEVICE_ID_INTEL_ALDER_LAKE_N_PCH_XHCI 0x54ed +#define PCI_VENDOR_ID_PHYTIUM 0x1db7 +#define PCI_DEVICE_ID_PHYTIUM_XHCI 0xdc27 + /* Thunderbolt */ #define PCI_DEVICE_ID_INTEL_MAPLE_RIDGE_XHCI 0x1138 #define PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_2C_XHCI 0x15b5 @@ -407,6 +410,10 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) if (pdev->vendor == PCI_VENDOR_ID_VIA) xhci->quirks |= XHCI_RESET_ON_RESUME; + if (pdev->vendor == PCI_VENDOR_ID_PHYTIUM && + pdev->device == PCI_DEVICE_ID_PHYTIUM_XHCI) + xhci->quirks |= XHCI_RESET_ON_RESUME; + /* See https://bugzilla.kernel.org/show_bug.cgi?id=79511 */ if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == 0x3432) -- 2.43.4