Dylan, On 31/10/17 17:42, Howey, Dylan wrote: > Roger, > > On 10/31/2017 10:23, Roger Quadros wrote: >> Hi Dylan, >> >> On 30/10/17 10:59, Felipe Balbi wrote: >>> >>> Hi, >>> >>> "Howey, Dylan" <Dylan.Howey@xxxxxxxxxxxxx> writes: >>>> Hello, >>>> >>>> I'm on an AM437x platform and I'm using FunctionFS to create a HID >>>> gadget. The device enumerates correctly when I plug it into a Linux >>>> host. If I unplug the cord and then plug it in again, I get a >>>> backtrace from dwc3, and the device fails to enumerate. >>>> >>>> I'm on ti-linux-4.9.y, but I see the same issue with 4.9.40 from >>>> kernel.org. >>>> >>>> Is this a known issue, and is there a workaround or a fix available? >>> >>> sorry, you need to ask help from TI. Either that, or test current >>> mainline (v4.14-rc7) and let me know if the same problem is there. >>> >>> BTW, latest v4.9 stable is v4.9.58, not v4.9.40. >>> >>> >>> Adding Roger Quadros here who works for TI and can, perhaps, point you >>> in the right direction. >> >> I couldn't reproduce the problem with g_zero or with configfs based ethernet (ECM) >> so I'm suspecting something is not going well with the ffs based HID solution. >> >> Do you have a known good kernel version where the ffs based HID solution works? >> If there is such a kernel then could you please share the ffs-HID solution so I can try it at my end? >> > I do not have a known kernel version where this HID implementation works on an > AM437x platform. I could share an implementation that's working on an AM335x > platform and the kernel version if you think that would be useful for resolving > this issue. AM335x uses a different USB controller though. Does it work with mainline kernel (v4.14-rc7)? I could try out your solution on DRA7x which uses dwc3 controller. >>> >>> Best >>> >>>> [ 30.746934] ------------[ cut here ]------------ >>>> [ 30.751587] WARNING: CPU: 0 PID: 947 at drivers/usb/dwc3/gadget.c:2303 dwc3_stop_active_transfer.constprop.5+0xd4/0xd8 >>>> [ 30.762259] Modules linked in: matrix_keypad >>>> [ 30.766539] CPU: 0 PID: 947 Comm: irq/90-dwc3 Not tainted 4.9.40-02118-gde0a93a #4 >>>> [ 30.774092] Hardware name: Generic AM43 (Flattened Device Tree) >>>> [ 30.779996] Backtrace: >>>> [ 30.782465] [<c010b34c>] (dump_backtrace) from [<c010b5fc>] (show_stack+0x18/0x1c) >>>> [ 30.790020] r7:00000009 r6:00000000 r5:c0899298 r4:00000000 >>>> [ 30.795679] [<c010b5e4>] (show_stack) from [<c0347218>] (dump_stack+0x24/0x28) >>>> [ 30.802903] [<c03471f4>] (dump_stack) from [<c012a8cc>] (__warn+0xe8/0x100) >>>> [ 30.809857] [<c012a7e4>] (__warn) from [<c012a99c>] (warn_slowpath_null+0x28/0x30) >>>> [ 30.817413] r9:55332309 r8:a0000093 r7:00000000 r6:ee82a010 r5:00000003 r4:ee82c900 >>>> [ 30.825147] [<c012a974>] (warn_slowpath_null) from [<c04b3ff0>] (dwc3_stop_active_transfer.constprop.5+0xd4/0xd8) >>>> [ 30.835393] [<c04b3f1c>] (dwc3_stop_active_transfer.constprop.5) from [<c04b47a0>] (dwc3_remove_requests+0x1c/0x98) >>>> [ 30.845805] r6:ee82a010 r5:ee82c934 r4:ee82c900 >>>> [ 30.850415] [<c04b4784>] (dwc3_remove_requests) from [<c04b566c>] (__dwc3_gadget_ep_disable+0x38/0xdc) >>>> [ 30.859700] r5:ee9b13f8 r4:ee82c900 >>>> [ 30.863271] [<c04b5634>] (__dwc3_gadget_ep_disable) from [<c04b5740>] (dwc3_gadget_ep_disable+0x30/0xac) >>>> [ 30.872731] r7:00000000 r6:00000002 r5:ee9b13f8 r4:20000093 >>>> [ 30.878387] [<c04b5710>] (dwc3_gadget_ep_disable) from [<c04d648c>] (usb_ep_disable+0x30/0x3c) >>>> [ 30.886979] r5:ee9b13f8 r4:ee82c900 >>>> [ 30.890557] [<c04d645c>] (usb_ep_disable) from [<c04dd928>] (ffs_func_eps_disable+0x40/0x64) >>>> [ 30.898975] r5:ee9b13f8 r4:ee7c8280 >>>> [ 30.902547] [<c04dd8e8>] (ffs_func_eps_disable) from [<c04dda28>] (ffs_func_set_alt+0x90/0x288) >>>> [ 30.911229] r9:55332309 r8:55332509 r7:ee018e54 r6:00000000 r5:ffffffff r4:ee0271a4 >>>> [ 30.918960] [<c04dd998>] (ffs_func_set_alt) from [<c04ddc38>] (ffs_func_disable+0x18/0x1c) >>>> [ 30.927211] r10:55331839 r9:55332309 r8:55332509 r7:ee018e54 r6:00000000 r5:20000093 >>>> [ 30.935021] r4:ee0271a4 >>>> [ 30.937562] [<c04ddc20>] (ffs_func_disable) from [<c04d03e8>] (composite_disconnect+0x4c/0x94) >>>> [ 30.946160] [<c04d039c>] (composite_disconnect) from [<c04d5dc4>] (usb_gadget_udc_reset+0x18/0x3c) >>>> [ 30.955101] r7:ee82cd80 r6:ee82a010 r5:00000004 r4:ee82a160 >>>> [ 30.960752] [<c04d5dac>] (usb_gadget_udc_reset) from [<c04b487c>] (dwc3_gadget_reset_interrupt+0x60/0x1d0) >>>> [ 30.970383] r5:00000004 r4:ee8251d0 >>>> [ 30.973953] [<c04b481c>] (dwc3_gadget_reset_interrupt) from [<c04b4c0c>] (dwc3_thread_interrupt+0x220/0xaa8) >>>> [ 30.983759] r7:ee82cd80 r6:ee82a010 r5:00000004 r4:ee8251d0 >>>> [ 30.989421] [<c04b49ec>] (dwc3_thread_interrupt) from [<c0157ed0>] (irq_thread_fn+0x24/0x5c) >>>> [ 30.997843] r10:00000000 r9:c0b15fe4 r8:c0157eac r7:ee82cd80 r6:00000001 r5:ee82cd80 >>>> [ 31.005654] r4:ee00be40 >>>> [ 31.008185] [<c0157eac>] (irq_thread_fn) from [<c0158148>] (irq_thread+0x11c/0x19c) >>>> [ 31.015825] r7:ee82cd80 r6:00000001 r5:ee4b4000 r4:ee00be40 >>>> [ 31.021478] [<c015802c>] (irq_thread) from [<c01441b4>] (kthread+0xfc/0x114) >>>> [ 31.028514] r9:00000000 r8:00000000 r7:c015802c r6:ee00be40 r5:ee00be00 r4:00000000 >>>> [ 31.036246] [<c01440b8>] (kthread) from [<c0107918>] (ret_from_fork+0x14/0x3c) >>>> [ 31.043452] r7:00000000 r6:00000000 r5:c01440b8 r4:ee00be00 >>>> [ 31.049096] ---[ end trace 612f02bb50d0379b ]--- >>> >> >> -- >> cheers, >> -roger >> >> Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki > -- cheers, -roger Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki -- 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