On Sun, 24 May 2009, David wrote: > Alan Stern wrote: > > It's not obvious what could be causing this, so let's start out easy. > > Try collecting two usbmon traces (instructions are in > > Documentation/usb/usbmon.txt), showing what happens with and without > > the reversion. Maybe some difference will stick ou > > > Traces attached. Took a while as my quad core hangs solid when 0u is > piped to a file (I had to compile on a laptop and take the logs there). I see a suggestive pattern, though the exact mechanism still isn't clear. The log shows: An URB for bulk endpoint 1-in (the only URB queued) completes. About 150 us later, the driver does Clear-Halt on that endpoint. About 150 us after that, the driver submits another URB. Without the patch this URB completes normally and transfers 64 bytes (i.e., only one packet). With the patch, the URB times out. We can safely conclude that the endpoint toggle setting is getting out of sync between the device and the host, as a result of the Clear-Halt. There is code in ehci-hcd to prevent this from happening; the question is why doesn't it work now when it used to work before? I'll think about it some more... Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html