OHCI控制器在USB鼠标滚轮滚动时无中断的问题咨询
OHCI控制器鼠标滚轮滚动的中断问题
首先明确结论:正常情况下,滚轮滚动是应该触发OHCI控制器中断的。
下面是可能导致当前现象的几个原因及排查方向:
- HID报告描述符未配置滚轮项:USB鼠标的所有输入(包括滚轮)都通过HID报告传递,如果鼠标的报告描述符里没定义
Generic Desktop页面下的Wheel用法,主机端无法识别滚轮滚动的输入事件,OHCI自然不会触发中断。你可以读取鼠标的HID报告描述符,检查是否包含对应的滚轮配置段。 - OHCI中断端点配置异常:鼠标滚轮数据走中断端点传输,若该端点的中断触发条件(比如报告间隔)设置错误,或者控制器端禁用了该端点的中断触发,就不会产生中断。可查看OHCI控制器的端点寄存器,确认中断端点的启用状态和报告间隔参数是否正确。
- 鼠标硬件/固件缺陷:部分低成本鼠标的固件逻辑存在问题,仅在按下滚轮(中键)时才发送滚轮相关报告,单纯滚动时不生成输入报告,这种硬件层面的问题也会导致无中断。
- 驱动层的优化处理:少数驱动会合并多次滚轮滚动的报告,或做延迟处理,但底层OHCI控制器其实已经收到报告并触发了中断,只是上层未将这个中断暴露出来。
建议先从检查HID报告描述符入手,确认滚轮配置存在后,再排查控制器的端点寄存器状态。
内容的提问来源于stack exchange,提问作者vector space
相关产品推荐
相关产品推荐

