Linux上的USB HID设备轮询间隔

时间:2016-03-01 16:25:12

标签: linux kernel usb hid

我有一个全速USB HID设备,请求的轮询间隔等于1,当我使用内核3.x,4.x时,我每隔一帧(每2ms)只能进行中断IN传输。同时,OUT传输按设计每帧(每1ms)发生。具有完全相同软件的完全相同的设备在非常慢(500MHz Atom)计算机上的Kernel 2.6上按预期工作(IN传输每1ms)。

我能做些什么吗?

1 个答案:

答案 0 :(得分:1)

看起来这是因为UHCI和一些OHCI控制器的Linux驱动程序中存在错误。驱动程序没有足够快地处理由控制器填充的TD,因此控制器必须跳过SOH插槽。因此,中断传输仅在每隔一个时隙到达。

如果我将USB 3.0卡插入同一个Linux,一切都很好,因为使用的是XHCI驱动程序。如果我在同一台计算机上运行Windows,一切都很好,因为Windows没有错误。