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