Re: [PATCH] proper bios handoff in ehci-hcd

From: Will Beers
Date: Tue Jul 13 2004 - 00:32:03 EST


Stuart Hayes here at Dell has identified this or/and mix-up in the
ehci-hcd driver. Because of this, ehci-hcd is not properly released by
BIOSes supporting full 2.0 and port behavior can then become erratic.

This change actually breaks USB altogether on an Asus P4P800, as I noticed when I updated to 2.6.8-rc1.

I get the following messages at boot:

-----
Jul 12 23:34:06 willdesktop kernel: ehci_hcd 0000:00:1d.7: BIOS handoff failed (104, 1010001)
Jul 12 23:34:06 willdesktop kernel: ehci_hcd 0000:00:1d.7: can't reset
Jul 12 23:34:06 willdesktop kernel: ehci_hcd 0000:00:1d.7: init 0000:00:1d.7 fail, -95
Jul 12 23:34:06 willdesktop kernel: ehci_hcd: probe of 0000:00:1d.7 failed with error -95
-----

I've seen a few other people with this problem, and reversing the change makes everything work perfectly again, maybe this was the cause of it all? (sorry if I missed the fix before)

(included patch reverses it)

-Will

-----------------------------------------------------------------------------


diff -Nru a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
--- a/drivers/usb/host/ehci-hcd.c 2004-07-13 01:09:00.000000000 -0400
+++ b/drivers/usb/host/ehci-hcd.c 2004-07-13 01:08:32.000000000 -0400
@@ -293,7 +293,7 @@
struct pci_dev *pdev = to_pci_dev(ehci->hcd.self.controller);

/* request handoff to OS */
- cap |= 1 << 24;
+ cap &= 1 << 24;
pci_write_config_dword(pdev, where, cap);

/* and wait a while for it to happen */

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature