插上U盘,出现一行打印就拔出来,或者多次频繁快速插拔,就会一直打印下面的信息
[ 127.000885] musb-hdrc musb-hdrc.0.auto: otg: usb_otg_kick_fsm: invalid host/gadget device
[ 127.120767] usb 1-1: new high-speed USB device number 2 using musb-hdrc
[ 127.580803] musb-hdrc musb-hdrc.0.auto: otg: usb_otg_kick_fsm: invalid host/gadget device
[ 127.700783] usb 1-1: new high-speed USB device number 3 using musb-hdrc
[ 128.160817] musb-hdrc musb-hdrc.0.auto: otg: usb_otg_kick_fsm: invalid host/gadget device
[ 128.281002] usb 1-1: new high-speed USB device number 4 using musb-hdrc
[ 128.700920] musb-hdrc musb-hdrc.0.auto: otg: usb_otg_kick_fsm: invalid host/gadget device
[ 128.820803] usb 1-1: new high-speed USB device number 5 using musb-hdrc
[ 129.350844] musb-hdrc musb-hdrc.0.auto: otg: usb_otg_kick_fsm: invalid host/gadget device
[ 129.470783] usb 1-1: new high-speed USB device number 6 using musb-hdrc
[ 129.930848] musb-hdrc musb-hdrc.0.auto: otg: usb_otg_kick_fsm: invalid host/gadget device
[ 130.051048] usb 1-1: new high-speed USB device number 7 using musb-hdrc
[ 130.510970] musb-hdrc musb-hdrc.0.auto: otg: usb_otg_kick_fsm: invalid host/gadget device
[ 130.630788] usb 1-1: new high-speed USB device number 8 using musb-hdrc
[ 131.050864] musb-hdrc musb-hdrc.0.auto: otg: usb_otg_kick_fsm: invalid host/gadget device
[ 131.170766] usb 1-1: new high-speed USB device number 9 using musb-hdrc
[ 131.700874] musb-hdrc musb-hdrc.0.auto: otg: usb_otg_kick_fsm: invalid host/gadget device
echo 65 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio65/direction
echo 0 > /sys/class/gpio/gpio65/value
echo 1 > /sys/class/gpio/gpio65/value
使用上面的命令将HUB进行复位,发现HUB又可以正常工作
跟TI的专家沟通,说是USB枚举失败了。导致这个问题的原因很多。
跟3.2.0的内核对比发现,HUB时钟只有在接上U盘才会有,空闲的时候HUB应该是挂起了。
网上说是去掉这一项USB runtime power management (autosuspend),找遍了内核也没有找到。(3.2.0的内核是有这一项,3.14.43已经去掉)
TI回复说是添加usbcore.autosuspend=-1到bootargs
再测试,问题消失