Re: USB DWC2 stops responding when insert/remove cable multiple times

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

 



Hi Otavio,

On 2/14/2020 5:40 PM, Otavio Salvador wrote:
>   the USB port stops responding. To recover the port we need to reload
> the g_serial module.
> 
> I have reports of it happening in the field, on the device but, until
> recently, it very hard to reproduce. We found that it is very easy to
> reproduce when we use the Microsoft Surface Dock, as hub.
> 
> Description of the host:
> 
>      Operating System: Windows 10 Pro
>      Driver: libusb-1.0 1.0.22
> 
> Description of the target:
> 
>      SoC: Rockchip RV1108G
>      Gadget: g_serial
>      Linux: 5.4.19
> 
> dmesg:
>      [   59.647746] g_serial gadget: Gadget Serial v2.4
>      [   59.648178] g_serial gadget: g_serial ready
>      [   59.653920] dwc2 30180000.usb: bound driver g_serial
>      [   59.912364] dwc2 30180000.usb: new device is high-speed
>      [   59.949981] dwc2 30180000.usb: new address 12
>      [   60.034937] g_serial gadget: high-speed config #2: CDC ACM config
>      [   65.980382] phy phy-10300000.syscon:usb2-phy@100.0: charger =
> USB_CDP_CHARGER
>      [   66.313267] dwc2 30180000.usb: new device is high-speed
>      [   66.350902] dwc2 30180000.usb: new address 13
>      [   66.388065] g_serial gadget: high-speed config #2: CDC ACM config
>      [  311.604251] dwc2 30180000.usb: new device is high-speed
>      [  311.641798] dwc2 30180000.usb: new address 14
>      [  311.745597] g_serial gadget: high-speed config #2: CDC ACM config
>      [  312.905102] dwc2 30180000.usb: new device is high-speed
>      [  312.944301] dwc2 30180000.usb: new address 15
>      [  312.967867] g_serial gadget: high-speed config #2: CDC ACM config
>      [  314.828173] dwc2 30180000.usb: new device is high-speed
>      [  314.866943] dwc2 30180000.usb: new address 16
>      [  314.889550] g_serial gadget: high-speed config #2: CDC ACM config
> 

I assume here you few time disconnected and then connected cable and 
after last connection even when g_serial seen in last line it stop work. 
Correct?

> 
> The "[  314.889550] g_serial gadget: high-speed config #2: CDC ACM
> config" message is the last time it is detected. As mentioned, to
> restore the port to work, we need to reload the g_serial module.
> 
> When we reload it, following exception happens:
> 

Actually exception happen in g_serial not dwc2. Why you assume that it 
because of dwc2?

>      [  923.962547] 9fe0: 00000002 b6346688 b65478d0 b6f4867c 600f0010
> ffffff9c 00000000 00000000
>      [  923.963304] [<c0850638>] (_raw_spin_lock_irq) from [<bf045d44>]
> (gs_close+0x2c/0x1f0 [u_serial])
>      [  923.964117] [<bf045d44>] (gs_close [u_serial]) from
> [<c04f96e8>] (tty_release+0xf0/0x49c)
>      [  923.964863] [<c04f96e8>] (tty_release) from [<c04fb5a4>]
> (tty_open+0x118/0x450)
>      [  923.965526] [<c04fb5a4>] (tty_open) from [<c02b509c>]
> (chrdev_open+0xe0/0x1b4)
>      [  923.966188] [<c02b509c>] (chrdev_open) from [<c02ac538>]
> (do_dentry_open+0x114/0x3f4)
>      [  923.966897] [<c02ac538>] (do_dentry_open) from [<c02bf778>]
> (path_openat+0x2f8/0x1128)
>      [  923.967613] [<c02bf778>] (path_openat) from [<c02c1930>]
> (do_filp_open+0x74/0xe4)
>      [  923.968290] [<c02c1930>] (do_filp_open) from [<c02adb5c>]
> (do_sys_open+0x174/0x208)
>      [  923.968985] [<c02adb5c>] (do_sys_open) from [<c0101000>]
> (ret_fast_syscall+0x0/0x54)
>      [  923.969675] Exception stack(0xc6739fa8 to 0xc6739ff0)
>      [  923.970136] 9fa0:                   003e4ff0 00674450 ffffff9c
> 003e4ff0 00000902 00000000
>      [  923.970868] 9fc0: 003e4ff0 00674450 0000000d 00000142 b57ff011
> 00040000 00040000 b6346874
>      [  923.971597] 9fe0: 00000002 b6346688 b65478d0 b6f4867c
>      [  923.972065] Code: f57ff05b e12fff1e f10c0080 f590f000 (e1903f9f)
>      [  923.972618] ---[ end trace 02edbbb9948c159c ]---
>      [  938.908716] g_serial gadget: Gadget Serial v2.4
>      [  938.909152] g_serial gadget: g_serial ready
>      [  938.917148] dwc2 30180000.usb: bound driver g_serial
>      [  939.176179] dwc2 30180000.usb: new device is high-speed
>      [  939.215459] dwc2 30180000.usb: new address 17
>      [  939.422037] g_serial gadget: high-speed config #2: CDC ACM config
> 
> So, I am a bit lost how to debug this so I'd like to know what kind of
> information might be useful to find the root cause of it?

And despite of above exception, g_serial enumerated it works fine?


Please provide me dump of follow dwc2 debugfs's: regdump, hw_params, params.

Thanks,
Minas





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

  Powered by Linux