From: David Brownell Fix http://bugzilla.kernel.org/show_bug.cgi?id=6128 Finish morphing the "early handoff" version of the EHCI BIOS handshake over to match the previous implementation inside the EHCI driver (except that now we forcibly disable the SMI). The version that had been with the PCI code was surprisingly full of bugs. Signed-off-by: David Brownell Cc: Cc: Greg KH Signed-off-by: Andrew Morton --- drivers/usb/host/pci-quirks.c | 11 ++++++----- 1 files changed, 6 insertions(+), 5 deletions(-) diff -puN drivers/usb/host/pci-quirks.c~usb-fix-ehci-bios-handshake drivers/usb/host/pci-quirks.c --- 25/drivers/usb/host/pci-quirks.c~usb-fix-ehci-bios-handshake Fri Feb 24 16:55:34 2006 +++ 25-akpm/drivers/usb/host/pci-quirks.c Fri Feb 24 16:55:34 2006 @@ -260,12 +260,13 @@ static void __devinit quirk_usb_disable_ offset + EHCI_USBLEGCTLSTS, val | EHCI_USBLEGCTLSTS_SOOE); #endif - } - /* always say Linux will own the hardware - * by setting EHCI_USBLEGSUP_OS. - */ - pci_write_config_byte(pdev, offset + 3, 1); + /* some systems get upset if this semaphore is + * set for any other reason than forcing a BIOS + * handoff.. + */ + pci_write_config_byte(pdev, offset + 3, 1); + } /* if boot firmware now owns EHCI, spin till * it hands it over. _