Hi Jun Li, On Wed, May 08, 2019 at 10:52:37AM +0000, Jun Li wrote: > From: Jun Li <jun.li@xxxxxxx> > > Register access in core validation may hang before the bulk > clks are enabled. This patch fixes the hang issue for on my i.MX8MQ based system. Tested-by: Baruch Siach <baruch@xxxxxxxxxx> However, commit b873e2d0ea1e is meant to move dwc3_core_is_valid() before dwc3_get_dr_mode(). With this patch dwc3_get_dr_mode() is called from dwc3_get_properties() before dwc3_core_is_valid(). I guess we need a larger change in the initialization sequence. Thanks, baruch > Fixes: b873e2d0ea1e ("usb: dwc3: Do core validation early on probe") > Signed-off-by: Jun Li <jun.li@xxxxxxx> > --- > > Change for v2: > - Update ret to be -ENODEV in case dwc3_core_is_valid() fail. > > drivers/usb/dwc3/core.c | 13 +++++++------ > 1 file changed, 7 insertions(+), 6 deletions(-) > > diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c > index 4aff1d8..93b96e6 100644 > --- a/drivers/usb/dwc3/core.c > +++ b/drivers/usb/dwc3/core.c > @@ -1423,11 +1423,6 @@ static int dwc3_probe(struct platform_device *pdev) > dwc->regs = regs; > dwc->regs_size = resource_size(&dwc_res); > > - if (!dwc3_core_is_valid(dwc)) { > - dev_err(dwc->dev, "this is not a DesignWare USB3 DRD Core\n"); > - return -ENODEV; > - } > - > dwc3_get_properties(dwc); > > dwc->reset = devm_reset_control_get_optional_shared(dev, NULL); > @@ -1460,6 +1455,12 @@ static int dwc3_probe(struct platform_device *pdev) > if (ret) > goto unprepare_clks; > > + if (!dwc3_core_is_valid(dwc)) { > + dev_err(dwc->dev, "this is not a DesignWare USB3 DRD Core\n"); > + ret = -ENODEV; > + goto disable_clks; > + } > + > platform_set_drvdata(pdev, dwc); > dwc3_cache_hwparams(dwc); > > @@ -1524,7 +1525,7 @@ static int dwc3_probe(struct platform_device *pdev) > err1: > pm_runtime_put_sync(&pdev->dev); > pm_runtime_disable(&pdev->dev); > - > +disable_clks: > clk_bulk_disable(dwc->num_clks, dwc->clks); > unprepare_clks: > clk_bulk_unprepare(dwc->num_clks, dwc->clks); -- http://baruch.siach.name/blog/ ~. .~ Tk Open Systems =}------------------------------------------------ooO--U--Ooo------------{= - baruch@xxxxxxxxxx - tel: +972.52.368.4656, http://www.tkos.co.il -