On Wed, 4 Jan 2006, Nicholas Robinson wrote:

> Hi
> 
> I've posted a question on the gnupic list but it was suggested that I post 
> here to get specialist usb help, so apologies for any duplicates.
> 
> I'm trying out a known working pic firmware app and using essentially 
> identical hardware. When I try to connect the device via usb to my fedora 
> core 4 (latest yums) I get the following appearing on dmesg:
> 
> usb 2-2: new low speed USB device using uhci_hcd and address 13
> usb 2-2: device descriptor read/64, error -71
> usb 2-2: device descriptor read/64, error -71
> usb 2-2: new low speed USB device using uhci_hcd and address 14
> usb 2-2: device descriptor read/64, error -71
> usb 2-2: device descriptor read/64, error -71
> usb 2-2: new low speed USB device using uhci_hcd and address 15
> usb 2-2: device not accepting address 15, error -71
> usb 2-2: new low speed USB device using uhci_hcd and address 16
> usb 2-2: device not accepting address 16, error -71
> 
> and the following on usbmon:
> 
> d6da35c0 2133874092 C Ii:001:01 0 1 = 04
> d6da35c0 2133874114 S Ii:001:01 -115 2 = 0400

...

> I'd be grateful if someone could help me to interpret the following to try to 
> pinpoint the problem. I've used usb_ch9.h and usbmon.txt to try to unpack the 
> log and it seems that the problem may lie in the first two lines. Should you 
> get the C line appearing first? Also, I think I read somewhere that the 
> status 115 should never be seen, but I could be wrong.

You misunderstood the usbmon output.  The first C line refers to an URB
that was submitted before you started monitoring, so you never saw the
corresponding S line.  The -115 is in fact normal; it indicates that the
URB is in progress.

The problem here lies in your device, not in the kernel.  The device is
failing to respond to the first USB request it receives.  Maybe there's 
really something wrong with the device.

Or possibly it needs a longer delay following the port reset before it is
ready to respond.  Here's how you can change the length of the delay.  In
the kernel source code, edit the file drivers/usb/core/hub.c.  Find the
hub_port_reset() routine and the lines that say:

                case 0:
                        /* TRSTRCY = 10 ms; plus some extra */
                        msleep(10 + 40);

Change the 40 to something larger, like 100 or 200.  If that makes your 
device work, see how low you can set that delay.

Note that according to the USB specification, all devices _should_ need no 
more than 10 ms.  Nevertheless, some devices do need more than that.

Alan Stern




-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
[email protected]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-users

Reply via email to