diff options
Diffstat (limited to 'drivers/usb/host/xhci-pci.c')
-rw-r--r-- | drivers/usb/host/xhci-pci.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c index 01c57055c0c5..a9515265db4d 100644 --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c | |||
@@ -248,6 +248,11 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) | |||
248 | if (pdev->vendor == PCI_VENDOR_ID_TI && pdev->device == 0x8241) | 248 | if (pdev->vendor == PCI_VENDOR_ID_TI && pdev->device == 0x8241) |
249 | xhci->quirks |= XHCI_LIMIT_ENDPOINT_INTERVAL_7; | 249 | xhci->quirks |= XHCI_LIMIT_ENDPOINT_INTERVAL_7; |
250 | 250 | ||
251 | if ((pdev->vendor == PCI_VENDOR_ID_BROADCOM || | ||
252 | pdev->vendor == PCI_VENDOR_ID_CAVIUM) && | ||
253 | pdev->device == 0x9026) | ||
254 | xhci->quirks |= XHCI_RESET_PLL_ON_DISCONNECT; | ||
255 | |||
251 | if (xhci->quirks & XHCI_RESET_ON_RESUME) | 256 | if (xhci->quirks & XHCI_RESET_ON_RESUME) |
252 | xhci_dbg_trace(xhci, trace_xhci_dbg_quirks, | 257 | xhci_dbg_trace(xhci, trace_xhci_dbg_quirks, |
253 | "QUIRK: Resetting on resume"); | 258 | "QUIRK: Resetting on resume"); |
@@ -380,6 +385,7 @@ static void xhci_pci_remove(struct pci_dev *dev) | |||
380 | if (xhci->shared_hcd) { | 385 | if (xhci->shared_hcd) { |
381 | usb_remove_hcd(xhci->shared_hcd); | 386 | usb_remove_hcd(xhci->shared_hcd); |
382 | usb_put_hcd(xhci->shared_hcd); | 387 | usb_put_hcd(xhci->shared_hcd); |
388 | xhci->shared_hcd = NULL; | ||
383 | } | 389 | } |
384 | 390 | ||
385 | /* Workaround for spurious wakeups at shutdown with HSW */ | 391 | /* Workaround for spurious wakeups at shutdown with HSW */ |