|
@@ -825,9 +825,13 @@ static void __devinit quirk_usb_handoff_xhci(struct pci_dev *pdev)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- /* Disable any BIOS SMIs */
|
|
|
- writel(XHCI_LEGACY_DISABLE_SMI,
|
|
|
- base + ext_cap_offset + XHCI_LEGACY_CONTROL_OFFSET);
|
|
|
+ val = readl(base + ext_cap_offset + XHCI_LEGACY_CONTROL_OFFSET);
|
|
|
+ /* Mask off (turn off) any enabled SMIs */
|
|
|
+ val &= XHCI_LEGACY_DISABLE_SMI;
|
|
|
+ /* Mask all SMI events bits, RW1C */
|
|
|
+ val |= XHCI_LEGACY_SMI_EVENTS;
|
|
|
+ /* Disable any BIOS SMIs and clear all SMI events*/
|
|
|
+ writel(val, base + ext_cap_offset + XHCI_LEGACY_CONTROL_OFFSET);
|
|
|
|
|
|
if (usb_is_intel_switchable_xhci(pdev))
|
|
|
usb_enable_xhci_ports(pdev);
|