Hi, On 4/20/2020 4:09 PM, Marek Vasut wrote: > On 4/17/20 11:00 AM, Minas Harutyunyan wrote: >> Hi, > > Hi, > >> On 4/16/2020 6:31 PM, Marek Vasut wrote: >>> On 4/16/20 3:37 PM, Minas Harutyunyan wrote: >> Looks like I found cause of issue. According to your logs GINTMSK set host masks, at least USB Reset not unmasked which required for device mode. Why it happen. During dwc2 driver probe first initialized device part then host part. Because of your g_zero is builtin in Kernel it immediately bound to dwc2, as result called main device initialization dwc2_hsotg_core_init_disconnected() which at least set GINTMSK for device mode. After gadget side initialization done, dwc2 go to host initialization hcd_init() and reset GINTMSK to host masks. In this case connecting cable to host will ignore USBReset and stacked. Your initial patch including call to function dwc2_hsotg_core_init_disconnected(), which allow to restore device mode masks and on cable connect start working as device. First to check my assumption, please build g_zero as module and modprobe it after dwc2 modprobe will be done. If the tests will pass then will think how resolve issue with builtin functions. Thanks, Minas