nullplan wrote:
An Interrupt Out endpoint is one with which the host interrupts the device. So it is my understanding that such a transfer is asynchronous from the host perspective. I have here next to me a USB device that possesses such an endpoint: A game controller. The Interrupt Out endpoint is used to control the force feedback feature. That is something the game may want to turn on or off at its leisure, not periodically. But the thing I keep seeing in some places is that such transfers should be periodic.
...
Is this a pervasive error or am I missing something obvious?
I think it's more about scheduling than functionality. A normal bulk transfer is scheduled after isochronous and interrupt transfers.
So, in the case of your force feedback device, you want to do the force feedback in sync with the game play, and not be at the whims of bulk scheduling (you might be competing with large bulk block transfers, for example) giving you unpredictable latency.