--- a/drivers/usb/host/pci-quirks.c +++ b/drivers/usb/host/pci-quirks.c @@ -237,7 +237,7 @@ offset = (hcc_params >> 8) & 0xff; while (offset && count--) { u32 cap; - int msec; + //int msec; The EHCI handoff disable pci_read_config_dword(pdev, offset, &cap); switch (cap & 0xff) { @@ -262,7 +262,15 @@ */ pci_write_config_byte(pdev, offset + 3, 1); } - + + /* + * if your BIOS have the handoff bug and + * freeze your boot, this code fix the freeze + * of your boot. + */ + tried_handoff = 1; + pci_read_config_dword(pdev, offset, &cap); +#if 0 /* if boot firmware now owns EHCI, spin till * it hands it over. */ @@ -273,6 +281,7 @@ msec -= 10; pci_read_config_dword(pdev, offset, &cap); } +#endif if (cap & EHCI_USBLEGSUP_BIOS) { /* well, possibly buggy BIOS... try to shut