On Thu, 18 Jul 2013, Sarah Sharp wrote: > Question: does this USB device need a control transfer to reset its > endpoints when the endpoints are not actually halted? If so, yes, that > is a known xHCI driver bug that needs to be fixed. The xHCI host will > not accept a Reset Endpoint command when the endpoints are not actually > halted, but the USB core will send the control transfer to reset the > endpoint. That means the device and host toggles will be out of sync, > and all messages will start to fail with -EPIPE. Why -EPIPE? Isn't that code reserved to indicate a STALL? In fact, there's no way to detect a toggle mismatch problem with a USB-2 device. Packets with the wrong toggle value are simply ignored (or acknowledged and ignored). The problem ends up appearing as an indefinite delay (for an IN transfer) or as data lost (for an OUT transfer). I don't know what happens with USB-3 devices when the sequence numbers get out of alignment. 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