[1.] a keyboard that is connected to to PS/2 port does not work with kernel 2.6.15 and 2.6.16rc1. That is to say that no action is seen at the login promt if I enter any key. [2.] I used PS/2 keyboards for a long time with kernels < 2.6.15 like 2.6.14.2, 2.6.13 or 2.6.11.10. I used "make oldconfig" to move the .config file form 2.6.14.2 to 2.6.15 and answered "no" to every question
You say that the problem does not occur with the newer F10 BIOS? Then this bug report should be marked Rejected, shouldn't it?
I don't think so. The fact that the newer BIOS has better USB Legacy emulation code does not eliminate the need to fix breakage of USB handoff code happened in 2.6.15 (The keyboard was working in 2.6.14, wasn't it?)
Martin, do you still have the F6 BIOS available for testing? If you do, can you try removing (or commenting out) the call to quirk_usb_handoff_ohci() in drivers/usb/host/pci-quirks.c (as described in the email thread)? Does that get the keyboard to work again?
Yes, I took the old F6 BIOS and commented each call of the quirk_usb_handoff_?hci-calls (that is to say all the three) and the PS/2 keyboard does work with 2.6.16-rc1 Martin
Other people with similar difficulties have found that if they left the calls to the ehci and uhci quirk routines intact, and only commented out the call to the ohci routine, that this would suffice to fix their problem. I'm curious to know if you get the same result. It would help narrow down the range of code that needs to be inspected and changed.
You are right. I only have commented out the ohci call and it does work. But I guess that my motherboard does not have an uhci controller (or whatever it is) so it should depend on the motherboard/chipset if the ohci or uhci call has to be commented out.
No, strangely enough. There have been several problem reports about the ohci handoff routine but none about the uhci routine. I'll look at the code and get back to you later.
Created attachment 7182 [details] Trim down over-zealous OHCI initialization I'm not an expert on OHCI. However, comparing the quirks code with the code in the main driver, it looks like there are a couple of small differences. This patch should make the quirks code act much more like ohci-hcd. Remember to remove the changes you made before applying the patch!
The "Trim down over-zealous OHCI initialization"-patch does not fix it (patched against 2.6.16-rc1). If I comment the call of the ohci quirks call, it does work :(
If you boot an old kernel, like 2.6.14, and add "usb-handoff" to the boot command line, what happens then? In theory, it should be just like the current 2.6.16-rc1 situation: keyboard non-responsive.
*** This bug has been marked as a duplicate of 6011 ***
Martin, I'm still waiting to hear what happens if you boot 2.6.14 (or earlier) with the "usb-handoff" kernel command-line parameter.
Hi Alan, yes: If I take kernel 2.6.14.2, the old F6 BIOS, the usb-handoff parameter and the keyboard to the PS/2 port, the keyboard does not work (just like using the 2.6.16rc1).
Created attachment 7368 [details] Add usb_delay_handoff kernel parameter Thanks for testing. This makes it clear that the only way to handle the old buggy BIOSes is to delay the USB handoff. The attached patch adds a kernel boot-line parameter "usb_delay_handoff" which should do what you need. I can't think of any way to detect at runtime whether the delay is needed. We'll probably have to settle for using the boot parameter.
I wonder if we have to start building a DMI list for delayed handoff...