USB: xhci: fix OS want to own HC
authorJiSheng Zhang <jszhang3@gmail.com>
Sat, 16 Jul 2011 03:04:19 +0000 (11:04 +0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 29 Aug 2011 21:32:50 +0000 (14:32 -0700)
commit 6768458b17f9bf48a4c3a34e49b20344091b5f7e upstream.

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>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
drivers/usb/host/pci-quirks.c

index 83b5f9cea85ac9f43af8d3b1eb87a259517cc05c..cb575d1aeaf813c90e59d85a8a128971e6771d3f 100644 (file)
@@ -412,7 +412,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,