On Fri, 13 Nov 2009, Viral Mehta wrote: > Hi, > > I am debugging an issue for a USB device (usb wifi dongle from TP-LINK > TL-WN321G which is using Ralink RT73 chipset). I am using it on an > embedded board running Linux 2.6.30 on ARM architecture. > When I configure the USB controller in USB 1.1 speed, my USB device > (i.e. usb wifi dongle) works perfectly fine. But when the USB controller > is configured for USB 2.0, the device stops working *after some time* > when doing large data transfer at high speed. > > The system becomes non-responsive. I could capture the USB packets > (using analyzer) between controller and device and found that there was > *continuous* PING - NAK token exchanges were happening. I could > re-confirm this scenario by putting some debug prints in controller > driver. From this observation, I assumed that it may happen that device > is not able to release the buffers and because of that its sending NAK > to each incoming PING request. > > When I reduced the number of PINGs sent out by USB controller driver, > the device was working fine. Currently I am skipping every alternate > PING token from controller driver, but it is hitting network performance > badly. > > From my experiments, I found that USB host controller is working > perfectly fine with mass storage devices. > ALSO USB WiFi dongle is working fine with X86 platform (Desktop PC which > has intel usb hcd). I found that USB wifi dongle has the same bulk > in/out endpoints as of mass storage devices (i.e. no interrupt endpoints > are present in dongle). > > I am not sure in which direction I should debug further. Any inputs in > same regard will be helpful. Have you compared the analyzer logs from the X86 machine with the logs from your embedded board? Maybe if you can program your board to imitate the PING packet timings of the X86 then the dongle will work better. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html