aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/usb/host/xhci-plat.c2
-rw-r--r--drivers/usb/host/xhci.c7
-rw-r--r--drivers/usb/host/xhci.h1
3 files changed, 8 insertions, 2 deletions
diff --git a/drivers/usb/host/xhci-plat.c b/drivers/usb/host/xhci-plat.c
index 51e22bf89505..6eca5a536c0a 100644
--- a/drivers/usb/host/xhci-plat.c
+++ b/drivers/usb/host/xhci-plat.c
@@ -24,7 +24,7 @@ static void xhci_plat_quirks(struct device *dev, struct xhci_hcd *xhci)
24 * here that the generic code does not try to make a pci_dev from our 24 * here that the generic code does not try to make a pci_dev from our
25 * dev struct in order to setup MSI 25 * dev struct in order to setup MSI
26 */ 26 */
27 xhci->quirks |= XHCI_BROKEN_MSI; 27 xhci->quirks |= XHCI_PLAT;
28} 28}
29 29
30/* called during probe() after chip reset completes */ 30/* called during probe() after chip reset completes */
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
index 9478caa2f71f..ead3555d6dba 100644
--- a/drivers/usb/host/xhci.c
+++ b/drivers/usb/host/xhci.c
@@ -343,9 +343,14 @@ static void __maybe_unused xhci_msix_sync_irqs(struct xhci_hcd *xhci)
343static int xhci_try_enable_msi(struct usb_hcd *hcd) 343static int xhci_try_enable_msi(struct usb_hcd *hcd)
344{ 344{
345 struct xhci_hcd *xhci = hcd_to_xhci(hcd); 345 struct xhci_hcd *xhci = hcd_to_xhci(hcd);
346 struct pci_dev *pdev = to_pci_dev(xhci_to_hcd(xhci)->self.controller); 346 struct pci_dev *pdev;
347 int ret; 347 int ret;
348 348
349 /* The xhci platform device has set up IRQs through usb_add_hcd. */
350 if (xhci->quirks & XHCI_PLAT)
351 return 0;
352
353 pdev = to_pci_dev(xhci_to_hcd(xhci)->self.controller);
349 /* 354 /*
350 * Some Fresco Logic host controllers advertise MSI, but fail to 355 * Some Fresco Logic host controllers advertise MSI, but fail to
351 * generate interrupts. Don't even try to enable MSI. 356 * generate interrupts. Don't even try to enable MSI.
diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
index c338741a675d..6ab1e600dc18 100644
--- a/drivers/usb/host/xhci.h
+++ b/drivers/usb/host/xhci.h
@@ -1542,6 +1542,7 @@ struct xhci_hcd {
1542#define XHCI_SPURIOUS_REBOOT (1 << 13) 1542#define XHCI_SPURIOUS_REBOOT (1 << 13)
1543#define XHCI_COMP_MODE_QUIRK (1 << 14) 1543#define XHCI_COMP_MODE_QUIRK (1 << 14)
1544#define XHCI_AVOID_BEI (1 << 15) 1544#define XHCI_AVOID_BEI (1 << 15)
1545#define XHCI_PLAT (1 << 16)
1545 unsigned int num_active_eps; 1546 unsigned int num_active_eps;
1546 unsigned int limit_active_eps; 1547 unsigned int limit_active_eps;
1547 /* There are two roothubs to keep track of bus suspend info for */ 1548 /* There are two roothubs to keep track of bus suspend info for */