Help for usb mouse when transfering files using USB disk

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux