Hi, All So there is an issue coming from our customer in USB part that puzzled me for some time. So I searched for some help from all you guys. Our customer used a MIPS CPU and chipset CS5536. Now we met an issue when transferring the files using USB HD. When the file is on going transfer, the USB mouse will disconnect from the host and can not be used again. And this issue is happened in not fixed time, maybe 30 seconds, maybe 5 minutes. And I did an experiment on this. The steps is as below: step1: using the mouse when tranfering the files using USB HD , wait until the mouse disconnect. step2: other ports which are not used are still ok. You can insert any USB devices into it and can work. step3: unplug the disconnected mouse, this port and other unused ports are failed. Only the used port(USB HD) can work now. step4: unplug the USB HD, this port fails too. Right now, all ports can not work. It seems that the disconnected mouse unplug causes the USB host exception. I have given debug to USBHID driver, it seems every operation is ok and atomic. But when I debug the usbhost I found that someting abnormal happened. The debug info is as below: -------------------------------------------------------------------------------- Normal result when unplug the mouse: usb_control_msg ret=4 usb_control_msg ret=0 usb_control_msg ret=0 usb 1-1: USB disconnect, address 3 usb 1-1: Frank: usb_disconnect3 usb 1-1: Frank: usb_disable_device--> usb 1-1: usb_disable_device nuking all URBs usb 1-1: usb_disable_device :i=0 Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint<-- Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint<-- usb 1-1: usb_disable_device :i=1 Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint<-- usb 1-1: usb_disable_device :i=2 usb 1-1: usb_disable_device :i=3 usb 1-1: usb_disable_device :i=4 usb 1-1: usb_disable_device :i=5 usb 1-1: usb_disable_device :i=6 usb 1-1: usb_disable_device :i=7 usb 1-1: usb_disable_device :i=8 usb 1-1: usb_disable_device :i=9 usb 1-1: usb_disable_device :i=10 usb 1-1: usb_disable_device :i=11 usb 1-1: usb_disable_device :i=12 usb 1-1: usb_disable_device :i=13 usb 1-1: usb_disable_device :i=14 usb 1-1: usb_disable_device :i=15 usb 1-1: unregistering interface 1-1:1.0 Frank: usb_hcd_unlink_urb--> Frank: usb_hcd_unlink_urb<-- Frank: usb_hcd_unlink_urb--> Frank: usb_hcd_unlink_urb<-- usb_control_msg ret=-19 usb 1-1: Frank: usb_disable_device<-- usb 1-1: Frank: usb_disconnect4 usb_control_msg ret=4 usb_control_msg ret=4 usb_control_msg ret=4 usb_control_msg ret=4 usb_control_msg ret=4 Frank: usb_hcd_unlink_urb--> Frank: usb_hcd_unlink_urb<-- Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint<-- Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint<-- Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint<-- Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint--> Abnormal result(mouse is hang) when unplug the mouse: usb_control_msg ret=4 usb_control_msg ret=0 usb_control_msg ret=0 usb 1-1: USB disconnect, address 4 usb 1-1: Frank: usb_disconnect3 usb 1-1: Frank: usb_disable_device--> usb 1-1: usb_disable_device nuking all URBs usb 1-1: usb_disable_device :i=0 Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint<-- Frank: usb_hcd_flush_endpoint--> Frank: usb_hcd_flush_endpoint<-- usb 1-1: usb_disable_device :i=1 Frank: usb_hcd_flush_endpoint--> Frank: into list_for_each_entry Frank: continue passed... ohci_hcd 0000:00:0e.4: shutdown urb 980000009e9f3b80 ep1in-intr Frank: into list_for_each_entry Frank: usb_hcd_unlink_urb--> Frank: usb_hcd_unlink_urb<-- -------------------------------------------------------------------------------- I can not make sure if you guys can see some happened with this debug info: “ohci_hcd 0000:00:0e.4: shutdown urb 980000009e9f3b80 ep1in-intr” Because in normal status, this debug info is not appearing. And can you guys can me some advice on debugging which part USB driver , that will make this issued found quickly? Thanks, Frank -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html