Search code examples
usblinux-device-driverembedded-linuxusb-debugging

Issue with usb deregistration on linux kernel


I am using Linux 4.19.55 armv7l on a omap3 processor. On my target there is a usb modem that gets power from a gpio pin value (defined under /sys/class/gpio). There are occasions when I change the value parameter of this gpio pin to bring down the hardware and while doing so I frequently get an error (thrown by musb_handle_intr_disconnect from inside drivers/usb/musb/musb_core.c ) as under:

"musb_handle_intr_disconnect 843: unhandled DISCONNECT transition (a_idle)"

I tried debugging the issue by mounting debugfs and capturing data from the concerned bus by using usbmon. Bus id is identified from lsusb output and confirmed by observing /sys/kernel/debug/usb/devices. I observe that usbmon is unable to capture data whenever the mentioned error shows up. In a no error scenario the usbmon does capture the traffic from the concerned bus. Please help how to debug this issue.


Solution

  • Just checked that a commit on kernel branch fixes this issue which is present inside the states handled by the glue layer. This is the required commit