> At the moment I only have access to laptops, not a desktop, > so the EHCI testing was on a different machine, with the Ubuntu > 3.13 kernel. If you'd like me to test on a more recent kernel, > please let me know. Ok. That's a useful data point. >> It's also worth mentioning that the process you're exercising isn't >> just the code path for device insertion. The udev process and >> PulseAudio will both try to connect to the device as soon as the >> underlying device nodes appear, so it's possible there is some race >> condition where the device is being accessed and registers are being >> poked before initialization is complete. I cannot say for certain >> this would be an issue with cx231xx, but I've definitely seen it with >> other V4L2 drivers. That might also explain why you see different >> behavior at boot - the driver loads early enough in the boot process >> such that initialization completes before processes like udev and >> pulseaudio get a chance to interact with it. > > Good point, although the problems occur when the device is present > during boot. It works fine if it is plugged in after boot. However it > does appear to be some sort of timing / race condition. > > Any other suggestions? My guess would be that there's some bug in the cx231xx that exacerbates an edge case in the XHCI core - like prematurely setting the USB alternate back to zero when stopping streaming and not canceling all the URBs first. > Do you know if the cx23102 datasheet is available? All I've been able > to find is a two page sheet with a block diagram. It is not publicly available. I have it under NDA. That said, I suspect we're not dealing with anything that is really specific to the cx231xx chip, but rather just some general bug in the URB handling in the cx231xx driver. As a test, you may wish to try disabling the cx231xx-audio module. That will help narrow down an interaction with ALSA, pulseaudio, and one of the two sources of URB queueing. Devin -- Devin J. Heitmueller - Kernel Labs http://www.kernellabs.com -- 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