diff -r a103aef8f269 drivers/usb/host/.xhci-pci.c.swp Binary file drivers/usb/host/.xhci-pci.c.swp has changed diff -r a103aef8f269 drivers/usb/host/xhci-pci.c --- a/drivers/usb/host/xhci-pci.c Wed Mar 05 13:54:43 2014 +0100 +++ b/drivers/usb/host/xhci-pci.c Wed Mar 05 13:58:50 2014 +0100 @@ -34,6 +34,8 @@ #define PCI_VENDOR_ID_ETRON 0x1b6f #define PCI_DEVICE_ID_ASROCK_P67 0x7023 +#define PCI_VENDOR_ID_RENESAS 0x1912 + static const char hcd_name[] = "xhci_hcd"; /* called after powerup, by probe or system-pm "wakeup" */ @@ -81,6 +83,10 @@ if (pdev->vendor == PCI_VENDOR_ID_NEC) xhci->quirks |= XHCI_NEC_HOST; + /* Quirk for RENESAS USB 3.0 express cards */ + if (pdev->vendor == PCI_VENDOR_ID_RENESAS) + xhci->quirks |= XHCI_TRUST_TX_LENGTH; + if (pdev->vendor == PCI_VENDOR_ID_AMD && xhci->hci_version == 0x96) xhci->quirks |= XHCI_AMD_0x96_HOST; diff -r a103aef8f269 drivers/usb/host/xhci.c --- a/drivers/usb/host/xhci.c Wed Mar 05 13:54:43 2014 +0100 +++ b/drivers/usb/host/xhci.c Wed Mar 05 13:58:50 2014 +0100 @@ -4683,6 +4683,14 @@ get_quirks(dev, xhci); + + /* In xhci controllers which follow xhci 1.0 spec gives a spurious + * success event after a short transfer. This quirk will ignore such + * spurious event (This is taken from Linux 3.13) + */ + if (xhci->hci_version > 0x96) + xhci->quirks |= XHCI_SPURIOUS_SUCCESS; + /* Make sure the HC is halted. */ retval = xhci_halt(xhci); if (retval)