Tengo un dispositivo USB HID de alta velocidad con un intervalo de sondeo solicitado igual a 1, y cuando lo uso con Kernels 3.x, 4.x solo obtengo transferencias de Interrupción IN cada dos fotogramas (cada 2 ms). Al mismo tiempo, las transferencias de SALIDA ocurren en cada cuadro (cada 1 ms) según lo diseñado. Exactamente el mismo dispositivo con exactamente el mismo software funciona como se esperaba (transferencias IN cada 1 ms) en Kernel 2.6 en una computadora muy lenta (500 MHz Atom).
¿Algo que pueda hacer al respecto?
Parece que esto se debe a un error en los controladores de Linux para UHCI y algunos controladores OHCI. El controlador no procesa los TD llenados por el controlador lo suficientemente rápido, por lo que el controlador debe omitir una ranura SOH. Como resultado, las transferencias de interrupción llegan solo cada dos ranuras.
Si inserto la tarjeta USB 3.0 en el mismo Linux, todo está bien porque en su lugar se usa el controlador XHCI. Si ejecuto Windows en la misma computadora, todo está bien, porque Windows no tiene el error.