From: Alan Stern > On Fri, 15 Aug 2014, David Laight wrote: > > > With all the usb dynamic-debug enabled the first errors I see are 'detected XactErr' > > len 0/1522 and len 2048/18944 (all 32 retries). > > Then some '3strikes' messages (75 in total split between the endpoints). > > > > I've not yet looked at what those errors actually mean. > > "Detected XactErr" means a transaction error occurred (the Transaction > Error (XactErr) bit was set in the qTD's status field). The len values > are the number of bytes transferred and the number of bytes requested. > Usually this occurs because the host doesn't receive a handshake or > data packet from the device. > > The "3strikes" messages mean an URB was aborted because there were too > many errors. I think I've discovered our underlying problem. I scoped the USB data lines (NFI why the hardware guys hadn't looked at them!). As well as the SOF (every 125us) there is a rather nasty decaying transient every 41us that is almost 400mV and lasts about as long as the SOF. (These seem to be generated by some PWM fan controllers, possibly ground lift!) I suspect that when the transient lines up with the SOF the envelope detector in the USB host detects the 800mV that would appear when the target is unplugged - so actions an unplug event and drives a USB reset. This is all the USB monitor sees - normal data (with acks) and a sudden host reset - no retries. This rather begs the question of why the driver trace shows repeated URB submissions - since something should know that the 'unplug' has been signalled. However I've not tried to align the USB monitor and scope traces, nor the driver events (possible by using the UART signals one of the 5 COM ports). David -- 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