diff options
-rw-r--r-- | drivers/usb/host/xhci-plat.c | 2 | ||||
-rw-r--r-- | drivers/usb/host/xhci.c | 7 | ||||
-rw-r--r-- | drivers/usb/host/xhci.h | 1 |
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) | |||
343 | static int xhci_try_enable_msi(struct usb_hcd *hcd) | 343 | static 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 */ |