现象:
mtk7601 反映down不下去。尝试了几个版本的7601驱动,同样都有这种现象
原因:
mtk7601本身设备在执行down后,已经执行了down动作,但我们cpu没有收到回馈的irq,造成 cpu一直堵塞等待irq。
修改方法:
将 kernel/driver/usb/core/urb.c里面:
wait_event_interruptible(usb_kill_urb_queue, atomic_read(&urb->use_count) == 0);
改为
wait_event_timeout(usb_kill_urb_queue, atomic_read(&urb->use_count) == 0, HZ/10);
既可。
mtk7601本身设备在执行down后,已经执行了down动作,但我们cpu没有收到回馈的irq,造成 cpu一直堵塞等待irq。
修改方法:
将 kernel/driver/usb/core/urb.c里面:
wait_event_interruptible(usb_kill_urb_queue, atomic_read(&urb->use_count) == 0);
改为
wait_event_timeout(usb_kill_urb_queue, atomic_read(&urb->use_count) == 0, HZ/10);
既可。