linux 内核上的 USB 注销问题

Issue with usb deregistration on linux kernel

我在 omap3 处理器上使用 Linux 4.19.55 armv7l。在我的目标上有一个 usb 调制解调器,它从 gpio 引脚值(在 /sys/class/gpio 下定义)获取电源。有时我会更改此 gpio 引脚的值参数以关闭硬件,而这样做时我经常会收到错误(由 drivers/usb/musb/musb_core.c 内部的 musb_handle_intr_disconnect 抛出),如下所示:

"musb_handle_intr_disconnect 843: 未处理的 DISCONNECT 转换 (a_idle)"

我尝试通过挂载 debugfs 并使用 usbmon 从相关总线捕获数据来调试问题。总线 ID 从 lsusb 输出中识别,并通过观察 /sys/kernel/debug/usb/devices 确认。我观察到只要出现上述错误,usbmon 就无法捕获数据。在没有错误的情况下,usbmon 会捕获来自相关总线的流量。请帮助如何调试此问题。

刚刚检查内核分支上的提交修复了这个存在于胶层处理的状态中的问题。这是the required commit