Re: [RFT PATCH 0/4] usb: dwc2: Fix core reset and force mode delay problems

From: Michael Niewoehner
Date: Thu Mar 31 2016 - 16:45:44 EST


Hi John,

Am 29.03.2016 um 04:36 schrieb John Youn <johnyoun@xxxxxxxxxxxx>:

> 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
>

after applying your patch series on v4.6-rc1 usb keeps being broken on rk3188.
Besides that I get "dwc2 10180000.usb: dwc2_wait_for_mode: Couldn't set host mode“ repeatedly.

Currently this works for me:
- Revert "usb: dwc2: Fix probe problem on bcm2835“
- Apply "usb: dwc2: Add a 10 ms delay to dwc2_core_reset()"


Best regards
Michael