xHCI: add XHCI_RESET_ON_RESUME quirk for VIA xHCI host
authorElric Fu <elricfu1@gmail.com>
Thu, 29 Mar 2012 07:47:50 +0000 (15:47 +0800)
committerSarah Sharp <sarah.a.sharp@linux.intel.com>
Wed, 11 Apr 2012 15:28:59 +0000 (08:28 -0700)
The suspend operation of VIA xHCI host have some issues and
hibernate operation works fine, so The XHCI_RESET_ON_RESUME
quirk is added for it.

This patch should base on "xHCI: Don't write zeroed pointer
to xHC registers" that is released by Sarah. Otherwise, the
host system error will ocurr in the hibernate operation
process.

This should be backported to stable kernels as old as 2.6.37,
that contain the commit c877b3b2ad5cb9d4fe523c5496185cc328ff3ae9
"xhci: Add reset on resume quirk for asrock p67 host".

Signed-off-by: Elric Fu <elricfu1@gmail.com>
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Cc: stable@vger.kernel.org
drivers/usb/host/xhci-pci.c

index 0d7b8513596534c73e2f76660525cca0b7f09d60..7a856a767e77c5f9190666293ddf56a0e7a863d1 100644 (file)
@@ -95,6 +95,8 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
                xhci->quirks |= XHCI_RESET_ON_RESUME;
                xhci_dbg(xhci, "QUIRK: Resetting on resume\n");
        }
+       if (pdev->vendor == PCI_VENDOR_ID_VIA)
+               xhci->quirks |= XHCI_RESET_ON_RESUME;
 }
 
 /* called during probe() after chip reset completes */