USB: xhci: fix OS want to own HC
authorJiSheng Zhang <jszhang3@gmail.com>
Sat, 16 Jul 2011 03:04:19 +0000 (11:04 +0800)
committerSarah Sharp <sarah.a.sharp@linux.intel.com>
Mon, 1 Aug 2011 16:45:27 +0000 (09:45 -0700)
Software should set XHCI_HC_OS_OWNED bit to request ownership of xHC.

This patch should be backported to kernels as far back as 2.6.31.

Signed-off-by: JiSheng Zhang <jszhang3@gmail.com>
Signed-off-by: Sarah Sharp <sarah.a.sharp@linux.intel.com>
Cc: stable@kernel.org
drivers/usb/host/pci-quirks.c

index a9d315906e3dede9caa39571742a3c34c76b55ee..f4d1b691e6ec819bdcf74dd4bdf7b011b05397ca 100644 (file)
@@ -817,7 +817,7 @@ static void __devinit quirk_usb_handoff_xhci(struct pci_dev *pdev)
 
        /* If the BIOS owns the HC, signal that the OS wants it, and wait */
        if (val & XHCI_HC_BIOS_OWNED) {
-               writel(val & XHCI_HC_OS_OWNED, base + ext_cap_offset);
+               writel(val | XHCI_HC_OS_OWNED, base + ext_cap_offset);
 
                /* Wait for 5 seconds with 10 microsecond polling interval */
                timeout = handshake(base + ext_cap_offset, XHCI_HC_BIOS_OWNED,