XHCI USB Keyboard - Missing key press events (Slow)
Posted: Tue Jun 20, 2017 2:52 am
Hello
I have built XHCI driver and it's working fine with a USB thumb drive - which uses Bulk In/Out endpoints
I am now developing a USB keyboard driver which uses Interrupt In/Out endpoints
If I type slowly then I am able to receive key press + release events for all the keys typed. However, if I type at normal speed (or faster) then some of the key press/release events are not generated - i.e. I don't see them in the event ring. Most of the times, key press events will be missing while corresponding key release events are present in the event ring
I use TR (transfer) ring of size 64. I create 32 "Interrupt IN" TRBs upfront and then upon every Key press/release event, the event handler adds an "Interrupt IN" TRB back onto Transfer ring
Any idea why if I type at normal speed/faster - some of key press/release events are missed out by XHCI controller ?
PS: I can confirm there is no issue with USB keyboard device as I can type fine on windows/Linux
Regards
Prajwal
I have built XHCI driver and it's working fine with a USB thumb drive - which uses Bulk In/Out endpoints
I am now developing a USB keyboard driver which uses Interrupt In/Out endpoints
If I type slowly then I am able to receive key press + release events for all the keys typed. However, if I type at normal speed (or faster) then some of the key press/release events are not generated - i.e. I don't see them in the event ring. Most of the times, key press events will be missing while corresponding key release events are present in the event ring
I use TR (transfer) ring of size 64. I create 32 "Interrupt IN" TRBs upfront and then upon every Key press/release event, the event handler adds an "Interrupt IN" TRB back onto Transfer ring
Any idea why if I type at normal speed/faster - some of key press/release events are missed out by XHCI controller ?
PS: I can confirm there is no issue with USB keyboard device as I can type fine on windows/Linux
Regards
Prajwal