Randy, Roman, countrymen:
Attached are three patches for OHCI that I'd like to see get into
the next convenient kernel. (Don't hold 2.4.0 for these ... ;-)
They're against 2.3.99 pre3-3, which was still the latest as of a
couple minutes ago.
PATCH1 usb-ohci.h ... provide lots of missing register mask
constants; comments those that are there already.
PATCH2 usb-ohci.c ... fix bug where root hub wasn't reporting
correct information (requires PATCH1)
PATCH3 usb-ohci.[hc] ... enables UE (Unrecoverable Error ) interrupt,
and uses it to flag a controller that's hung itself. Shouldn't
require either of the other patches.
Later patches can (and do :-) use the constants in PATCH1 for various
wholesome purposes, like PATCH2, but I'm holding them off for the moment.
The advantage to PATCH3 is that further operations are rejected with
an identifiable code (ESHUTDOWN) so that even if someone misses the
kernel error message, code can react to the real problem rather than
a consequent timeout or somesuch:
Mar 20 14:03:18 neon kernel: hub.c: port 1 connection change
Mar 20 14:03:18 neon kernel: hub.c: portstatus 101, change 1, High Speed
Mar 20 14:03:19 neon kernel: hub.c: portstatus 103, change 10, High Speed
Mar 20 14:03:19 neon kernel: usb.c: USB new device connect, assigned device
number 2
Mar 20 14:03:19 neon kernel: usb-ohci.c: OHCI Unrecoverable Error,
controller disabled
Mar 20 14:03:22 neon kernel: usb_control/bulk_msg: timeout
Mar 20 14:03:22 neon kernel: usb-ohci.c: unlink URB timeout!
Mar 20 14:03:22 neon kernel: usb.c: USB device not responding, giving up
(error=-108)
Mar 20 14:03:22 neon kernel: hub.c: hub: disabling port 1
I know that my NEC OHCI always gets UE (see earlier posts) while my
ALI one doesn't. I suspect that some of the other OHCI failures I've
seen reported may also be due to a UE, but there's really only one
way to find out how many hardware configurations are now seeing those
failures, right?
For the heck of it, I looked at what UHCI and USB-UHCI are doing
when those controllers hang. UHCI prints a message ("very bad").
USB-UHCI seems to attempt a partial recovery. For the moment I've
not tried to reset OHCI; endless reset loops come to mind.
- Dave
PATCH1
PATCH2
PATCH3
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]