From mboxrd@z Thu Jan 1 00:00:00 1970 From: Brian Norris Subject: Re: [PATCH] usb: dwc3: core: power on PHYs before initializing core Date: Wed, 17 Jan 2018 13:46:03 -0800 Message-ID: <20180117214601.GA111796@google.com> References: <1515729616-8639-1-git-send-email-william.wu@rock-chips.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <1515729616-8639-1-git-send-email-william.wu@rock-chips.com> Sender: linux-kernel-owner@vger.kernel.org To: William Wu 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 List-Id: linux-rockchip.vger.kernel.org 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 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 > --- > drivers/usb/dwc3/core.c | 46 ++++++++++++++++++++++------------------------ > 1 file changed, 22 insertions(+), 24 deletions(-) From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: usb: dwc3: core: power on PHYs before initializing core From: Brian Norris Message-Id: <20180117214601.GA111796@google.com> Date: Wed, 17 Jan 2018 13:46:03 -0800 To: William Wu 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 List-ID: T24gRnJpLCBKYW4gMTIsIDIwMTggYXQgMTI6MDA6MTZQTSArMDgwMCwgV2lsbGlhbSBXdSB3cm90 ZToKPiBUaGUgZHdjM19jb3JlX2luaXQoKSBnZXRzIHRoZSBQSFlzIGFuZCBpbml0aWFsaXplcyB0 aGUgUEhZcyB3aXRoCj4gdGhlIHVzYl9waHlfaW5pdCgpIGFuZCBwaHlfaW5pdCgpIGZ1bmN0aW9u cyBiZWZvcmUgaW5pdGlhbGl6aW5nCj4gY29yZSwgYW5kIHBvd2VyIG9uIHRoZSBQSFlzIGFmdGVy IGNvcmUgaW5pdGlhbGl6YXRpb24gaXMgZG9uZS4KPiAKPiBIb3dldmVyLCBzb21lIHBsYXRmb3Jt cyAoZS5nLiBSb2NrY2hpcCBSSzMzOTkgRFdDMyB3aXRoIFR5cGUtQwo+IFVTQjMgUEhZKSwgaXQg bmVlZHMgdG8gZG8gc29tZSBzcGVjaWFsIG9wZXJhdGlvbiB3aGlsZSBwb3dlciBvbgo+IHRoZSBU eXBlLUMgUEhZIGJlZm9yZSBpbml0aWFsaXppbmcgRFdDMyBjb3JlLiBJdCdzIGJlY2F1c2UgdGhh dAo+IHRoZSBSSzMzOTkgVHlwZS1DIFBIWSByZXF1aXJlcyB0byBob2xkIHRoZSBEV0MzIGNvbnRy b2xsZXIgaW4KPiByZXNldCBzdGF0ZSB0byBrZWVwIHRoZSBQSVBFIHBvd2VyIHN0YXRlIGluIFAy IHdoaWxlIGNvbmZpZ3VyaW5nCj4gdGhlIFR5cGUtQyBQSFksIG90aGVyd2lzZSwgaXQgbWF5IGNh dXNlIHdhaXRpbmcgZm9yIHRoZSBQSVBFIHJlYWR5Cj4gdGltZW91dC4gSW4gdGhpcyBjYXNlLCBp ZiB3ZSBwb3dlciBvbiB0aGUgUEhZcyBhZnRlciB0aGUgRFdDMyBjb3JlCj4gaW5pdGlhbGl6YXRp b24gaXMgZG9uZSwgdGhlIGNvcmUgd2lsbCBiZSByZXNldCB0byB1bmluaXRpYWxpemVkCj4gc3Rh dGUgYWZ0ZXIgcG93ZXIgb24gdGhlIFBIWXMuCj4gCj4gRml4IHRoaXMgYnkgcG93ZXJpbmcgb24g dGhlIFBIWXMgYmVmb3JlIGluaXRpYWxpemluZyBjb3JlLiBBbmQKPiBiZWNhdXNlIHRoZSBHVUlE IHJlZ2lzdGVyIG1heSBhbHNvIGJlIHJlc2V0IGluIHRoaXMgY2FzZSwgc28gd2UKPiBuZWVkIHRv IGNvbmZpZ3VyZSB0aGUgR1VJRCByZWdpc3RlciBhZnRlciBwb3dlcmluZyBvbiB0aGUgUEhZcy4K PiAKPiBTaWduZWQtb2ZmLWJ5OiBXaWxsaWFtIFd1IDx3aWxsaWFtLnd1QHJvY2stY2hpcHMuY29t PgoKVGhpcyBraW5kYSBzaG91bGQgYmUgcGFydCBvZiB5b3VyIHNlcmllczoKCltQQVRDSCAwLzNd IFJlc2V0IFVTQjMgY29udHJvbGxlciBiZWZvcmUgaW5pdGlhbGl6aW5nIFR5cGUtQyBQSFkgb24g cmszMzk5CgpvciBhdCBsZWFzdCBtZW50aW9uZWQgdGhlcmUsIGJlY2F1c2UgdGhlIHNlcmllcyB0 aGVyZSBkb2Vzbid0IHF1aXRlCnJpZ2h0IG90aGVyd2lzZSwgbm8/CgpBbnl3YXksIEkgdGhpbmsg dGhpcyBwYXRjaCBsb29rcyBPSy4gSSBkb24ndCBpbW1lZGlhdGVseSBzZWUgZ29vZApyZWFzb25z IGZvciBkZWxheWluZyB0aGUgUEhZIGluaXQgdW50aWwgbGF0ZXIsIGFuZCBJIGRvIHNlZSByZWFz b25zIHdoeQppdCBjb3VsZCBiZSB1c2VmdWwgZWFybGllcjoKClJldmlld2VkLWJ5OiBCcmlhbiBO b3JyaXMgPGJyaWFubm9ycmlzQGNocm9taXVtLm9yZz4KCj4gLS0tCj4gIGRyaXZlcnMvdXNiL2R3 YzMvY29yZS5jIHwgNDYgKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQo+ICAxIGZpbGUgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0p Ci0tLQpUbyB1bnN1YnNjcmliZSBmcm9tIHRoaXMgbGlzdDogc2VuZCB0aGUgbGluZSAidW5zdWJz Y3JpYmUgbGludXgtdXNiIiBpbgp0aGUgYm9keSBvZiBhIG1lc3NhZ2UgdG8gbWFqb3Jkb21vQHZn ZXIua2VybmVsLm9yZwpNb3JlIG1ham9yZG9tbyBpbmZvIGF0ICBodHRwOi8vdmdlci5rZXJuZWwu b3JnL21ham9yZG9tby1pbmZvLmh0bWwK