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

From: John Youn
Date: Thu Apr 07 2016 - 14:42:14 EST


On 3/31/2016 2:44 PM, Michael Niewoehner wrote:
> 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
>

Thanks Michael.

I won't be able to look at this again until next week. In the meantime
could you provide a driver log? In particular I want to see the values
of your GHWCFG registers, and where you are seeing the
dwc2_wait_for_mode() failure.

Regards,
John