Pete Zaitcev wrote:

I hit regressions when we implemented the proper handoff as requested
by Stuart @Dell, so I think for the moment the right thing would be this:

--- linux-2.4.21-15.18.EL/drivers/usb/host/ehci-hcd.c 2004-07-01
08:07:56.000000000 -0700
+++ linux-2.4.21-15.18-usb/drivers/usb/host/ehci-hcd.c 2004-07-08
15:15:05.944863675 -0700
@@ -302,7 +302,8 @@
if (cap & (1 << 16)) {
ehci_err (ehci, "BIOS handoff failed (%d, %04x)\n",
where, cap);
- return 1;
+ pci_write_config_dword (ehci->hcd.pdev, where, 0);
+ return 0;
} ehci_dbg (ehci, "BIOS handoff succeeded\n");
}


Essentially, here I insist on doing the right thing with cap|=(1<<24),
which fixes Dell boxes which implement proper handoff, but then if we
time out as on Thinkpads, write zero as the old code did (probably
pointless, but just to be safe) and continue.

I'd rather not change the config space again ... that's clearly wrong. Or is there some policy about what sorts of BIOS bugs we should assume?

Instead, how about:  (a) longer timeout, 5 seconds to match OHCI's
absurdly long default there; (b) change that "handoff failed" message
to add "continuing anyway"; and (c) return 0 as you do, which I'm
expecting is the key part of that patch.

That'll evidently work for Will, as well as correctly functioning hardware
with EHCI-aware BIOS (the Dell boxes and the AMI BIOS box I tested) also
the classic EHCI-unaware BIOS setups.

- Dave




-------------------------------------------------------
This SF.Net email sponsored by Black Hat Briefings & Training.
Attend Black Hat Briefings & Training, Las Vegas July 24-29 - digital self defense, top technical experts, no vendor pitches, unmatched networking opportunities. Visit www.blackhat.com
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to