This should help EHCI work better on some boards where
the BIOS support is buggy.

- Dave

Be more forgiving of buggy BIOS code, which never hands the
EHCI controller to Linux.

Signed-off-by: David Brownell <[EMAIL PROTECTED]>


--- a/drivers/usb/host/ehci-hcd.c       Tue Aug  3 13:48:10 2004
+++ b/drivers/usb/host/ehci-hcd.c       Tue Aug  3 13:48:10 2004
@@ -289,7 +289,7 @@
 static int bios_handoff (struct ehci_hcd *ehci, int where, u32 cap)
 {
        if (cap & (1 << 16)) {
-               int msec = 500;
+               int msec = 5000;
                struct pci_dev *pdev = to_pci_dev(ehci->hcd.self.controller);
 
                /* request handoff to OS */
@@ -305,7 +305,10 @@
                if (cap & (1 << 16)) {
                        ehci_err (ehci, "BIOS handoff failed (%d, %04x)\n",
                                where, cap);
-                       return 1;
+                       // some BIOS versions seem buggy...
+                       // return 1;
+                       ehci_warn (ehci, "continuing after BIOS bug...\n");
+                       return 0;
                } 
                ehci_dbg (ehci, "BIOS handoff succeeded\n");
        }

Reply via email to