[Bug] usb: dwc2: Add functions to set and clear force mode

Caesar Wang caesar.upstream at gmail.com
Mon Feb 1 03:12:00 PST 2016


Doug

在 2016年01月30日 03:11, Doug Anderson 写道:
> Caesar,
>
> On Tue, Jan 26, 2016 at 6:12 PM, Caesar Wang <caesar.upstream at gmail.com> wrote:
>> Thanks Doug's reply.
>>
>> Cc: Wulf
>> 在 2016年01月27日 00:05, Doug Anderson 写道:
>>> Hi,
>>>
>>> On Tue, Jan 26, 2016 at 4:02 AM, Caesar Wang <wxt at rock-chips.com> wrote:
>>>> Hi  John, Felipe
>>>>
>>>>
>>>> I'm no familiar with usb stuff.
>>>> then I found this patch will break usb working for rk3036 SoCs, maybe
>>>> more
>>>> SoCs.
>>>> Says, U disk can't work on usb host.
>>>>
>>>> The failure log:
>>>>
>>>>      32.645481] usb usb2-port1: connect-debounce failed
>>>>
>>>>
>>>> Tested by following branch:
>>>> https://github.com/Caesar-github/rockchip/tree/kylin/next   (kernel:
>>>> 4.5-rc1)
>>>>
>>>> Revert "usb: dwc2: Add functions to set and clear force mode" will work
>>>> for
>>>> it.
>>>>
>>>>
>>>> Maybe, someone have some suggestions or ideas?
>>> Can you check if this series helps you?
>>>
>>> http://marc.info/?l=linux-usb&m=145255851516121&w=2
>>
>> Unluckily, this series patches can't fix it on rk3036 SoCs.
>> I revert this CL ("usb: dwc2: Add functions to set and clear force mode") to
>> work firstly.
> You're 100% positive?  In particular you made sure you had this patch
> (one of the two in John's series I pointed at), which explicitly
> mentions fixing a problem with the patch you mention?

I'm 100% positive the John's patches can fix this issue.
As the following verified on
https://github.com/Caesar-github/rockchip/commits/for-usb-tests

Anyway, Meanwhile if we add the folllowing patch can work for me.  I 
will track it on tomorrow if you have other suggestions.

diff --git a/drivers/usb/dwc2/core.c b/drivers/usb/dwc2/core.c
index e991d55..90f4abf 100644
--- a/drivers/usb/dwc2/core.c
+++ b/drivers/usb/dwc2/core.c
@@ -637,6 +637,13 @@ int dwc2_core_reset_and_force_dr_mode(struct 
dwc2_hsotg *hsotg)
                 return retval;

         dwc2_force_dr_mode(hsotg);
+
+       /*
+        * NOTE: This long sleep is _very_ important, otherwise the core 
will
+        * not stay in host mode after a connector ID change!
+        */
+        usleep_range(150000, 160000);
+
         return 0;
  }


>
> Author:     John Youn <John.Youn at synopsys.com>
> AuthorDate: Mon Jan 11 16:32:28 2016 -0800
>
>      usb: dwc2: Fix probe problem on bcm2835
>
>      Fixes an issue found on Raspberry PI platform that prevents probe. Don't
>      skip setting the force mode if it's already set.
>
>      Fixes: 09c96980dc72 ("usb: dwc2: Add functions to set and clear force mode")
>      Signed-off-by: John Youn <johnyoun at synopsys.com>
>      Reported-by: Stefan Wahren <stefan.wahren at i2se.com>
>      Reported-by: Remi Pommarel <repk at triplefau.lt>
>      Tested-by: Stefan Wahren <stefan.wahren at i2se.com>
>      Tested-by: Remi Pommarel <repk at triplefau.lt>
>
>
> Maybe try again just in case there was some problem updating your
> kernel when you tested before?  If you're sure you can reproduce the
> problem even with John's two patches, perhaps you can give more
> details about what part of his patch broke things for you.
>
> -Doug
>
> _______________________________________________
> Linux-rockchip mailing list
> Linux-rockchip at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-rockchip


-- 
Thanks,
Caesar




More information about the Linux-rockchip mailing list