usb: ehci: add pci device support for Aspeed platforms
authorNeal Liu <neal_liu@aspeedtech.com>
Tue, 8 Feb 2022 10:16:57 +0000 (18:16 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 13 Apr 2022 18:59:04 +0000 (20:59 +0200)
[ Upstream commit c3c9cee592828528fd228b01d312c7526c584a42 ]

Enable Aspeed quirks in commit 7f2d73788d90 ("usb: ehci:
handshake CMD_RUN instead of STS_HALT") to support Aspeed
ehci-pci device.

Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Neal Liu <neal_liu@aspeedtech.com>
Link: https://lore.kernel.org/r/20220208101657.76459-1-neal_liu@aspeedtech.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/usb/host/ehci-pci.c

index e87cf3a..638f03b 100644 (file)
@@ -21,6 +21,9 @@ static const char hcd_name[] = "ehci-pci";
 /* defined here to avoid adding to pci_ids.h for single instance use */
 #define PCI_DEVICE_ID_INTEL_CE4100_USB 0x2e70
 
+#define PCI_VENDOR_ID_ASPEED           0x1a03
+#define PCI_DEVICE_ID_ASPEED_EHCI      0x2603
+
 /*-------------------------------------------------------------------------*/
 #define PCI_DEVICE_ID_INTEL_QUARK_X1000_SOC            0x0939
 static inline bool is_intel_quark_x1000(struct pci_dev *pdev)
@@ -222,6 +225,12 @@ static int ehci_pci_setup(struct usb_hcd *hcd)
                        ehci->has_synopsys_hc_bug = 1;
                }
                break;
+       case PCI_VENDOR_ID_ASPEED:
+               if (pdev->device == PCI_DEVICE_ID_ASPEED_EHCI) {
+                       ehci_info(ehci, "applying Aspeed HC workaround\n");
+                       ehci->is_aspeed = 1;
+               }
+               break;
        }
 
        /* optional debug port, normally in the first BAR */