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