On Wednesday 02 November 2005 6:36 pm, Charles Shannon Hendrix wrote:
> 
> Beginning with Linux 2.6.10, my 1GB USB drive sometimes required more
> than one attempt before it would connect.  In other words, I often had
> to remove it and reinsert it in its port before the kernel would see it.
> 
> ...
> 
> Either the device never registers at all, or the kernel sees it but
> fails with an error -71.

Various people have reported problems like this, but it's not at all
clear what the problem is ... since many other people have no problems.
It might be related to the specific USB devices, or the board, or the
chip; hard to say.

A similar issue -- often also with VIA hardware -- is devices that work
for a while and then spontaneously disconnect themselves.  It might be
this is another case where VIA hardware needs to be stroked in ways that
other hardware doesn't care about.  (In which case testing with some
add-in PCI card with a non-VIA controller would be more successful.)


> In all cases, even when the kernel makes no syslog entry at all,
> /proc/interupts show that interrupts were received upon each device plug
> and unplug.

I'd expect that CONFIG_USB_DEBUG=y would show some more messages.

 
> When I do see syslog messages, they look like this:
> 
> Nov  2 20:51:38 daydream kernel: usb 1-8: device descriptor read/64, error -71
> Nov  2 20:51:38 daydream last message repeated 3 times
> Nov  2 20:51:39 daydream kernel: usb 1-8: device not accepting address 14, 
> error -71
> Nov  2 20:51:39 daydream kernel: usb 1-8: device not accepting address 15, 
> error -71

This is early enumeration code.  In fact, the read/64 stuff doesn't need
to be done; there's only one ep0 maxpacket size possible for high (or low)
speed devices.  One person reported some success with a patch that bypasses
the "guess the ep0 maxpacket" dance except for full speed (which is the only
case where it's necessary) ... one theory is that since that dance forces
devices into certain fault modes, either (a) devices don't always handle
those fault modes correctly, or (b) Linux doesn't.  So bypassing those
fault modes could make them both happier.


> ...
> 
> Right now I have the time to spend debugging this, so if someone things
> they can help or has ideas, let me know what I can do to try and figure
> out the problem.

Start with CONFIG_USB_DEBUG=y to see what other messages are reported.

If this started with 2.6.10, then maybe you could help pinpoint which patch
to 2.6.9 started to make this failure happen more often.

- Dave




-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server. Download
it for free - -and be entered to win a 42" plasma tv or your very own
Sony(tm)PSP.  Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
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