diff options
-rw-r--r-- | drivers/usb/host/xhci-pci.c | 1 | ||||
-rw-r--r-- | drivers/usb/host/xhci.c | 7 |
2 files changed, 7 insertions, 1 deletions
diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c index cc24e39b97d5..f00cb203faea 100644 --- a/drivers/usb/host/xhci-pci.c +++ b/drivers/usb/host/xhci-pci.c | |||
@@ -93,7 +93,6 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci) | |||
93 | } | 93 | } |
94 | if (pdev->vendor == PCI_VENDOR_ID_INTEL && | 94 | if (pdev->vendor == PCI_VENDOR_ID_INTEL && |
95 | pdev->device == PCI_DEVICE_ID_INTEL_PANTHERPOINT_XHCI) { | 95 | pdev->device == PCI_DEVICE_ID_INTEL_PANTHERPOINT_XHCI) { |
96 | xhci->quirks |= XHCI_SPURIOUS_SUCCESS; | ||
97 | xhci->quirks |= XHCI_EP_LIMIT_QUIRK; | 96 | xhci->quirks |= XHCI_EP_LIMIT_QUIRK; |
98 | xhci->limit_active_eps = 64; | 97 | xhci->limit_active_eps = 64; |
99 | xhci->quirks |= XHCI_SW_BW_CHECKING; | 98 | xhci->quirks |= XHCI_SW_BW_CHECKING; |
diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c index d8f640b12dd9..0f7be59d5319 100644 --- a/drivers/usb/host/xhci.c +++ b/drivers/usb/host/xhci.c | |||
@@ -4697,6 +4697,13 @@ int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks) | |||
4697 | 4697 | ||
4698 | get_quirks(dev, xhci); | 4698 | get_quirks(dev, xhci); |
4699 | 4699 | ||
4700 | /* In xhci controllers which follow xhci 1.0 spec gives a spurious | ||
4701 | * success event after a short transfer. This quirk will ignore such | ||
4702 | * spurious event. | ||
4703 | */ | ||
4704 | if (xhci->hci_version > 0x96) | ||
4705 | xhci->quirks |= XHCI_SPURIOUS_SUCCESS; | ||
4706 | |||
4700 | /* Make sure the HC is halted. */ | 4707 | /* Make sure the HC is halted. */ |
4701 | retval = xhci_halt(xhci); | 4708 | retval = xhci_halt(xhci); |
4702 | if (retval) | 4709 | if (retval) |