Hi, The following patch series addresses the core reset and force mode delay problems we have been seeing on dwc2 for some platforms.
I think I have identified the source of the inconsistencies between platforms and this series attempts to address them. Basically everything stems from the IDDIG debounce filter delay, which is a function of the PHY clock speed and can range from 5-50 ms if enabled. This delay must be taken into account on core reset and force modes. A full explanation is provided in the patch commit log and code comments. The first two patches are prerequisites to the force mode fixes, including one patch that was sent separately by Przemek Rudy. I have resubmitted it with this series for convenience. Please help by reviewing and testing on your platforms. Patches were tested on: * Synopsys HAPS platform IP 3.20a OTG, dr_mode=OTG,HOST,PERIPHERAL Regards, John John Youn (3): usb: dwc2: gadget: Only initialize device if in device mode usb: dwc2: Add delay to core soft reset usb: dwc2: Properly account for the force mode delays Przemek Rudy (1): usb: dwc2: do not override forced dr_mode in gadget setup drivers/usb/dwc2/core.c | 195 ++++++++++++++++++++++++++++---------------- drivers/usb/dwc2/core.h | 2 +- drivers/usb/dwc2/gadget.c | 30 +++++-- drivers/usb/dwc2/hcd.c | 6 +- drivers/usb/dwc2/hw.h | 1 + drivers/usb/dwc2/platform.c | 9 +- 6 files changed, 161 insertions(+), 82 deletions(-) -- 2.7.4