2016-03-01 1 views
2

Je dispose d'un périphérique USB HID pleine vitesse avec un intervalle d'interrogation égal à 1, et lorsque je l'utilise avec des noyaux 3.x, 4.x, je reçois uniquement des transferts d'interruption d'entrée toutes les autres images (toutes les 2ms). Dans le même temps, les transferts OUT se produisent chaque trame (toutes les 1ms) comme prévu. Le même appareil avec exactement le même logiciel fonctionne comme prévu (transferts IN toutes les 1ms) sur Kernel 2.6 sur un ordinateur très lent (Atom 500MHz).Intervalle d'interrogation du périphérique HID USB sous Linux

Tout ce que je peux faire à ce sujet?

Répondre

1

On dirait que c'est à cause d'un bogue dans les pilotes Linux pour UHCI et certains contrôleurs OHCI. Le pilote ne traite pas suffisamment les TD remplis par le contrôleur, le contrôleur doit donc ignorer un emplacement SOH. Par conséquent, les transferts d'interruption n'arrivent que tous les deux intervalles.

Si j'insère une carte USB 3.0 dans le même Linux, tout va bien parce que le pilote XHCI est utilisé à la place. Si je cours Windows sur le même ordinateur, tout va bien, parce que Windows n'a pas le bug.