path: root/drivers/usb
diff options
authorAndiry Xu <andiry.xu@amd.com>2011-11-17 13:07:44 +0800
committerSarah Sharp <sarah.a.sharp@linux.intel.com>2011-11-28 10:22:26 -0800
commitdf711fc9962b9491af2b92bd0d21ecbfefe4e5fa (patch)
treeebefb30afe3849b6fff39a9dd562481987b2d335 /drivers/usb
parent8746c83d538cab273d335acb2be226d096f4a5af (diff)
xHCI: reset-on-resume quirk for NEC uPD720200
Julian Sikorski reports NEC uPD720200 does not work stable after suspend and resume. Re-initialize the host in xhci_resume(). This should be backported to stable kernels as old as 2.6.37. The kernel will need to include commit c877b3b2ad5cb9d4fe523c5496185cc328ff3ae9 "xhci: Add reset on resume quirk for asrock p67 host" for this patch to work. Signed-off-by: Andiry Xu <andiry.xu@amd.com> Reported-by: Julian Sikorski <belegdol@gmail.com> Tested-by: Julian Sikorski <belegdol@gmail.com> Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Diffstat (limited to 'drivers/usb')
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
index ef98b38626f..d2a7332daca 100644
--- a/drivers/usb/host/xhci-pci.c
+++ b/drivers/usb/host/xhci-pci.c
@@ -33,6 +33,8 @@
#define PCI_VENDOR_ID_ETRON 0x1b6f
#define PCI_DEVICE_ID_ASROCK_P67 0x7023
+#define PCI_DEVICE_ID_NEC_uPD720200 0x0194
static const char hcd_name[] = "xhci_hcd";
/* called after powerup, by probe or system-pm "wakeup" */
@@ -74,8 +76,11 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
- if (pdev->vendor == PCI_VENDOR_ID_NEC)
+ if (pdev->vendor == PCI_VENDOR_ID_NEC) {
xhci->quirks |= XHCI_NEC_HOST;
+ if (pdev->device == PCI_DEVICE_ID_NEC_uPD720200)
+ xhci->quirks |= XHCI_RESET_ON_RESUME;
+ }
if (pdev->vendor == PCI_VENDOR_ID_AMD && xhci->hci_version == 0x96)
xhci->quirks |= XHCI_AMD_0x96_HOST;