我有一个全速USB HID设备,请求的轮询间隔等于1,当我使用内核3.x,4.x时,我每隔一帧(每2ms)只能进行中断IN传输。同时,OUT传输按设计每帧(每1ms)发生。具有完全相同软件的完全相同的设备在非常慢(500MHz Atom)计算机上的Kernel 2.6上按预期工作(IN传输每1ms)。
我能做些什么吗?
答案 0 :(得分:1)
看起来这是因为UHCI和一些OHCI控制器的Linux驱动程序中存在错误。驱动程序没有足够快地处理由控制器填充的TD,因此控制器必须跳过SOH插槽。因此,中断传输仅在每隔一个时隙到达。
如果我将USB 3.0卡插入同一个Linux,一切都很好,因为使用的是XHCI驱动程序。如果我在同一台计算机上运行Windows,一切都很好,因为Windows没有错误。