All of lore.kernel.org
 help / color / mirror / Atom feed
From: Brian Norris <briannorris@chromium.org>
To: William Wu <william.wu@rock-chips.com>
Cc: balbi@kernel.org, gregkh@linuxfoundation.org, heiko@sntech.de,
	linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org,
	linux-rockchip@lists.infradead.org, frank.wang@rock-chips.com,
	huangtao@rock-chips.com, dianders@google.com, groeck@google.com,
	daniel.meng@rock-chips.com, John.Youn@synopsys.com,
	lin.huang@rock-chips.com
Subject: Re: [PATCH] usb: dwc3: core: power on PHYs before initializing core
Date: Wed, 17 Jan 2018 13:46:03 -0800	[thread overview]
Message-ID: <20180117214601.GA111796@google.com> (raw)
In-Reply-To: <1515729616-8639-1-git-send-email-william.wu@rock-chips.com>

On Fri, Jan 12, 2018 at 12:00:16PM +0800, William Wu wrote:
> The dwc3_core_init() gets the PHYs and initializes the PHYs with
> the usb_phy_init() and phy_init() functions before initializing
> core, and power on the PHYs after core initialization is done.
> 
> However, some platforms (e.g. Rockchip RK3399 DWC3 with Type-C
> USB3 PHY), it needs to do some special operation while power on
> the Type-C PHY before initializing DWC3 core. It's because that
> the RK3399 Type-C PHY requires to hold the DWC3 controller in
> reset state to keep the PIPE power state in P2 while configuring
> the Type-C PHY, otherwise, it may cause waiting for the PIPE ready
> timeout. In this case, if we power on the PHYs after the DWC3 core
> initialization is done, the core will be reset to uninitialized
> state after power on the PHYs.
> 
> Fix this by powering on the PHYs before initializing core. And
> because the GUID register may also be reset in this case, so we
> need to configure the GUID register after powering on the PHYs.
> 
> Signed-off-by: William Wu <william.wu@rock-chips.com>

This kinda should be part of your series:

[PATCH 0/3] Reset USB3 controller before initializing Type-C PHY on rk3399

or at least mentioned there, because the series there doesn't quite
right otherwise, no?

Anyway, I think this patch looks OK. I don't immediately see good
reasons for delaying the PHY init until later, and I do see reasons why
it could be useful earlier:

Reviewed-by: Brian Norris <briannorris@chromium.org>

> ---
>  drivers/usb/dwc3/core.c | 46 ++++++++++++++++++++++------------------------
>  1 file changed, 22 insertions(+), 24 deletions(-)

WARNING: multiple messages have this Message-ID (diff)
From: Brian Norris <briannorris@chromium.org>
To: William Wu <william.wu@rock-chips.com>
Cc: balbi@kernel.org, gregkh@linuxfoundation.org, heiko@sntech.de,
	linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org,
	linux-rockchip@lists.infradead.org, frank.wang@rock-chips.com,
	huangtao@rock-chips.com, dianders@google.com, groeck@google.com,
	daniel.meng@rock-chips.com, John.Youn@synopsys.com,
	lin.huang@rock-chips.com
Subject: usb: dwc3: core: power on PHYs before initializing core
Date: Wed, 17 Jan 2018 13:46:03 -0800	[thread overview]
Message-ID: <20180117214601.GA111796@google.com> (raw)

On Fri, Jan 12, 2018 at 12:00:16PM +0800, William Wu wrote:
> The dwc3_core_init() gets the PHYs and initializes the PHYs with
> the usb_phy_init() and phy_init() functions before initializing
> core, and power on the PHYs after core initialization is done.
> 
> However, some platforms (e.g. Rockchip RK3399 DWC3 with Type-C
> USB3 PHY), it needs to do some special operation while power on
> the Type-C PHY before initializing DWC3 core. It's because that
> the RK3399 Type-C PHY requires to hold the DWC3 controller in
> reset state to keep the PIPE power state in P2 while configuring
> the Type-C PHY, otherwise, it may cause waiting for the PIPE ready
> timeout. In this case, if we power on the PHYs after the DWC3 core
> initialization is done, the core will be reset to uninitialized
> state after power on the PHYs.
> 
> Fix this by powering on the PHYs before initializing core. And
> because the GUID register may also be reset in this case, so we
> need to configure the GUID register after powering on the PHYs.
> 
> Signed-off-by: William Wu <william.wu@rock-chips.com>

This kinda should be part of your series:

[PATCH 0/3] Reset USB3 controller before initializing Type-C PHY on rk3399

or at least mentioned there, because the series there doesn't quite
right otherwise, no?

Anyway, I think this patch looks OK. I don't immediately see good
reasons for delaying the PHY init until later, and I do see reasons why
it could be useful earlier:

Reviewed-by: Brian Norris <briannorris@chromium.org>

> ---
>  drivers/usb/dwc3/core.c | 46 ++++++++++++++++++++++------------------------
>  1 file changed, 22 insertions(+), 24 deletions(-)
---
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2018-01-17 21:46 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-12  4:00 [PATCH] usb: dwc3: core: power on PHYs before initializing core William Wu
2018-01-12  4:00 ` William Wu
2018-01-12  4:00 ` William Wu
2018-01-17 21:46 ` Brian Norris [this message]
2018-01-17 21:46   ` Brian Norris
     [not found]   ` <20180117214601.GA111796-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2018-01-18 16:51     ` [PATCH] " Enric Balletbo Serra
2018-01-18 16:51       ` Enric Balletbo Serra
2018-01-18 16:51       ` Enric Balletbo Serra
     [not found] ` <1515729616-8639-1-git-send-email-william.wu-TNX95d0MmH7DzftRWevZcw@public.gmane.org>
2018-03-08 10:43   ` [PATCH] " Felipe Balbi
2018-03-08 10:43     ` Felipe Balbi
2018-03-08 10:43     ` Felipe Balbi
2018-03-08 16:49     ` [PATCH] " Brian Norris
2018-03-08 16:49       ` Brian Norris
     [not found]       ` <20180308164916.GA65031-rgVyoJUnxu4fQXCR9C5MjtfHHWVUegAGYJqu5kTmcBRl57MIdRCFDg@public.gmane.org>
2018-03-09  8:54         ` [PATCH] " Roger Quadros
2018-03-09  8:54           ` Roger Quadros
2018-03-09  8:54           ` Roger Quadros
2018-03-09  9:01           ` [PATCH] " Felipe Balbi
2018-03-09  9:01             ` Felipe Balbi

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=20180117214601.GA111796@google.com \
    --to=briannorris@chromium.org \
    --cc=John.Youn@synopsys.com \
    --cc=balbi@kernel.org \
    --cc=daniel.meng@rock-chips.com \
    --cc=dianders@google.com \
    --cc=frank.wang@rock-chips.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=groeck@google.com \
    --cc=heiko@sntech.de \
    --cc=huangtao@rock-chips.com \
    --cc=lin.huang@rock-chips.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rockchip@lists.infradead.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=william.wu@rock-chips.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.