On Fri, May 27, 2011 at 02:11:14AM -0500, Scott Duplichan wrote:
I also have USB keyboard problems, but my problem is different. For each key I press, it repeats a couple dozen times. I solve the problem by adding a 'break' to usb-hid.c:
for (;;) { struct keyevent data; int ret = usb_poll_intr(pipe, &data); if (ret) break; handle_key(&data); break; <==================
Can you generate and send a log with debug level set to 8 and the dprintf in usb-hid.c:handle_key() changed to 8? Getting timestamps on the log (as with tools/readserial.py) would also help.
With this change, I am able to type well enough to get windbg started, which is all I needed at the time. But typing is very sluggish. I believe the sluggishness is due to use of 8254 periodic interrupt polling to service the keyboard.
Yeah - since the loop was disabled there's no longer a queue on USB key events. This means any keys pressed faster than 55ms are dropped.
-Kevin