| From 304785a66ad316501a310ce91236e2ac07e21c66 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 8 Feb 2022 18:16:57 +0800 |
| Subject: usb: ehci: add pci device support for Aspeed platforms |
| |
| From: Neal Liu <neal_liu@aspeedtech.com> |
| |
| [ 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 | 9 +++++++++ |
| 1 file changed, 9 insertions(+) |
| |
| diff --git a/drivers/usb/host/ehci-pci.c b/drivers/usb/host/ehci-pci.c |
| index e87cf3a00fa4..638f03b89739 100644 |
| --- a/drivers/usb/host/ehci-pci.c |
| +++ b/drivers/usb/host/ehci-pci.c |
| @@ -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 */ |
| -- |
| 2.35.1 |
| |