On Wed, 8 Feb 2006, Carlo E. Prelz wrote:

> ??
> 
> That's what I did. I disabled the if body (surrounded it by #if 0) and
> re-enabled the line that caused the freeze. The result is (apart from
> the flurry of printouts that I added) exactly equal to the original
> 2.6.16rc2 code, apart from this if body, which is commented out:
> 
>                       if ((cap & EHCI_USBLEGSUP_BIOS)) {
>                               pr_debug("%s %s: BIOS handoff\n",
>                                               pdev->dev.bus_id, "EHCI");
> 
>                               /* BIOS workaround (?): be sure the
>                                * pre-Linux code receives the SMI
>                                */
>                               pci_read_config_dword(pdev,
>                                               offset + EHCI_USBLEGCTLSTS,
>                                               &val);
>                               pci_write_config_dword(pdev,
>                                               offset + EHCI_USBLEGCTLSTS,
>                                               val | EHCI_USBLEGCTLSTS_SOOE);
>                       }
> 
> This is what I had understood. In this case, the machine does not
> freeze anymore, but the  EHCI_USBLEGSUP_BIOS bit is not turned off in
> the following 5-second wait loop (USB goes on working OK)
> 
> If you meant something different, let me know.

My message from yesterday doesn't seem to have gotten into the email 
archives, so I'm resending it.

My guess is that the BIOS doesn't expect to receive an ownership-change 
SMI notification, and when one arrives it crashes the BIOS.  That's why 
the SOOE bit wasn't set.  Maybe the BIOS polls for ownership changes, 
maybe it ignores them completely.

At any rate, it's probably best to assume (in the absence of more specific 
knowledge about a particular BIOS) that if SOOE isn't set it's because the 
BIOS doesn't want it to be set.  So that code you removed should run only 
when we know a specific quirk requires it.

Alan Stern



-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=103432&bid=230486&dat=121642
_______________________________________________
linux-usb-devel@lists.sourceforge.net
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to