linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: John Youn <John.Youn@synopsys.com>
To: Doug Anderson <dianders@chromium.org>,
	John Youn <John.Youn@synopsys.com>
Cc: Stefan Wahren <stefan.wahren@i2se.com>,
	Michael Niewoehner <linux@mniewoehner.de>,
	Tao Huang <huangtao@rock-chips.com>,
	Julius Werner <jwerner@chromium.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-usb@vger.kernel.org" <linux-usb@vger.kernel.org>,
	Caesar Wang <caesar.upstream@gmail.com>,
	Heiko Stuebner <heiko@sntech.de>, Felipe Balbi <balbi@kernel.org>,
	Remi Pommarel <repk@triplefau.lt>,
	Kever Yang <kever.yang@rock-chips.com>
Subject: Re: [RFT PATCH 2/2] Revert "usb: dwc2: Fix probe problem on bcm2835"
Date: Tue, 22 Mar 2016 13:37:26 -0700	[thread overview]
Message-ID: <56F1AD06.1010301@synopsys.com> (raw)
In-Reply-To: <CAD=FV=UGW7pCjVh1cjKDHs3yDni5RY-qtbMJP7qDp1cAPbJ2uQ@mail.gmail.com>

On 3/22/2016 12:44 PM, Doug Anderson wrote:
> John,
> 
> On Tue, Mar 22, 2016 at 12:26 PM, John Youn <John.Youn@synopsys.com> wrote:
>> Thanks for the debug logs and everyones help.
>>
>> After reviewing with our hardware engineers, it seems this is likely
>> to do with the IDDIG debounce filtering when switching between
>> modes. You can see if this is enabled in your core by checking
>> GHWCFG4.IddgFltr.
>>
>> From the databook:
>>
>>     OTG_EN_IDDIG_FILTER
>>
>>     Specifies whether to add a filter on the "iddig" input from the
>>     PHY. If your PHY already has a filter on iddig for de-bounce, then
>>     it is not necessary to enable the one in the DWC_otg.  The filter
>>     is implemented in the DWC_otg_wpc module as a 20-bit counter that
>>     works on the PHY clock. In the case of the UTMI+ PHY, this pin is
>>     from the PHY. In the case of the ULPI PHY, this signal is
>>     generated by the ULPI Wrapper inside the core.
>>
>>
>> This only affects OTG cores and the delay is 10ms for 30MHz PHY clock
>> and 50ms with a 6MHz PHY clock.
> 
> Wow, nice to have it so perfectly explained!  :)
> 
> 
>> The reason we see this after a reset is that by default the IDDIG
>> indicates device mode. But if the id pin is set to host the core will
>> immediately detect it after the reset and trigger the filtering delay
>> before changing to host mode.
>>
>> This delay is also triggered by force mode. This is the origin of the
>> 25 ms delay specified in the databook. The databook did not take into
>> account that there might be a 6MHz clock so this delay could actually
>> be up to 50 ms. So we aren't delaying enough time for those cases.
>>
>> I think this explains all the problems and platform differences we are
>> seeing related to this.
>>
>> I think we can just add an IDDIG delay after a force mode, a clear
>> force mode, and any time after reset where we don't do either a force
>> or clear force mode immediately afterwards. Maybe set the delay time
>> via a core parameter or measure it once on probe. Or we can probably
>> just poll for the mode change in all of the above conditions.
> 
> The driver seems to be able to figure out the PHY clock in most cases
> in dwc2_calc_frame_interval().  It doesn't seem to handle 6MHz there,
> though.  I wonder if that's another bug?
> 
> Polling seems fine too, though.
> 
> 
>> Are you able to continue looking into this? If not, I can take it up.
> 
> I'm pretty much out of time at this point and it sounds like you've
> though through all of the corner cases.  If you can take it up that
> would be wonderful!  :)  I'm happy to give the patches a test, though!
>  :)
> 

Ok sure. I'll try to get something testable within a few days.

Regards,
John

  reply	other threads:[~2016-03-22 20:37 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-04 18:23 [RFT PATCH 1/2] usb: dwc2: Add a 10 ms delay to dwc2_core_reset() Douglas Anderson
2016-03-04 18:23 ` [RFT PATCH 2/2] Revert "usb: dwc2: Fix probe problem on bcm2835" Douglas Anderson
2016-03-04 22:54   ` Michael Niewoehner
2016-03-07 18:40   ` Stefan Wahren
2016-03-07 21:30     ` Doug Anderson
2016-03-08 17:49       ` Stefan Wahren
2016-03-09 19:01       ` Stefan Wahren
2016-03-09 19:06         ` Doug Anderson
2016-03-10 19:14           ` John Youn
2016-03-16 18:28             ` John Youn
2016-03-18 23:14               ` Stefan Wahren
2016-03-19  2:17                 ` Eric Anholt
2016-03-19  7:44                   ` Martin Sperl
2016-03-19  9:52                     ` Stefan Wahren
2016-03-19 10:10                       ` Martin Sperl
2016-03-19 12:09                         ` Stefan Wahren
2016-03-19  9:45                   ` Stefan Wahren
2016-03-19  5:21               ` Doug Anderson
2016-03-22 19:26                 ` John Youn
2016-03-22 19:44                   ` Doug Anderson
2016-03-22 20:37                     ` John Youn [this message]
2016-03-24  6:18                     ` John Youn
2016-03-04 22:54 ` [RFT PATCH 1/2] usb: dwc2: Add a 10 ms delay to dwc2_core_reset() Michael Niewoehner
2016-03-05  0:09   ` Michael Niewoehner
2016-03-05  0:33     ` Doug Anderson
2016-03-05  1:09       ` Doug Anderson
2016-03-05 20:41       ` Michael Niewoehner
2016-03-06  1:38         ` Doug Anderson
2016-03-04 23:46 ` Karl Palsson
2016-03-05  0:36   ` Doug Anderson
2016-03-04 23:52 ` Sergei Shtylyov
2016-03-05  2:23 ` John Youn

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=56F1AD06.1010301@synopsys.com \
    --to=john.youn@synopsys.com \
    --cc=balbi@kernel.org \
    --cc=caesar.upstream@gmail.com \
    --cc=dianders@chromium.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=heiko@sntech.de \
    --cc=huangtao@rock-chips.com \
    --cc=jwerner@chromium.org \
    --cc=kever.yang@rock-chips.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=linux@mniewoehner.de \
    --cc=repk@triplefau.lt \
    --cc=stefan.wahren@i2se.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).