On 4/22/20 4:21 PM, Marek Vasut wrote: > On 4/22/20 3:45 PM, Minas Harutyunyan wrote: >> Hi, > > 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. > > Using g_zero as a module seems to work too, so please proceed. Any news on using g_zero as built-in ?