Hi Sarah, >> 2. Clear Halt of EP > > Also note that the xHCI hardware will only allow the Reset Endpoint to > complete if the endpoint was actually halted due to a stall, babble, > transfer error, etc. It won't reset the endpoint toggles or sequence > number at arbitrary points, so we can't reset the endpoint after a new > alternate interface setting is installed. I checked the xHCI spec and your guess was correct. I was seeing the following message from the xHCI driver: [57322.699369] xhci_hcd 0000:04:00.0: Endpoint 0x1 not halted, refusing to reset. However, it is not obvious from the spec whether the OS driver should gate the reset endpoint command to the hardware or whether the hardware can still receive it and choose to ignore it. I ran this particular test with an Intel xHCI host. I found that my Macbook (which also uses an Intel host, I believe) seems to send the clear halt / reset ep command to the hardware as I clearly see the sequence number reset. Furthermore, what is interesting is that when we do IOCTL_USB_CLEAR_HALT over USBDEVFS on Linux, the ClearFeature(ENDPOINT_HALT) is still sent to the device over EP0 for the endpoint in question. However, the xHCI driver does not reset the toggle bit (for USB2 device) or sequence number (for USB3 device). This seems a bit incongruent. Finally, the Linux EHCI driver (perhaps the spec is different) acts differently in that both the ClearFeature is sent as well as the toggle bits are reset. Our device goes through a software-directed firmware reset which clears the device-side toggle bits (or sequence numbers). The endpoint is not halted though. Therefore, we want a clean way to reset the toggle bits (or sequence numbers) on the host without having to reconnect to the device. For USB2 (EHCI) we have always related on ClearFeature(ENDPOINT_HALT). Do you have any suggestions, or for the sake of interoperability and consistency, do you think it might be a good idea to just pass the reset ep command down to the hardware and let it decide what to do? Thanks, Yuliya -- 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