Message ID | 20210429073050.21039-16-peng.fan@oss.nxp.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | soc: imx: gpcv2: support i.MX8MM | expand |
Hi, On 29.04.21 09:30, Peng Fan (OSS) wrote: > From: Peng Fan <peng.fan@nxp.com> > > When gpcv2 probe, the reset controller might not be ready, so we need > defer probe > > Signed-off-by: Peng Fan <peng.fan@nxp.com> > --- > drivers/soc/imx/gpcv2.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/soc/imx/gpcv2.c b/drivers/soc/imx/gpcv2.c > index 072f519462a5..49dd137f6b94 100644 > --- a/drivers/soc/imx/gpcv2.c > +++ b/drivers/soc/imx/gpcv2.c > @@ -784,9 +784,12 @@ static int imx_pgc_domain_probe(struct platform_device *pdev) > "Failed to get domain's clocks\n"); > > domain->reset = devm_reset_control_array_get_optional_exclusive(domain->dev); > - if (IS_ERR(domain->reset)) > + if (IS_ERR(domain->reset)) { > + if (PTR_ERR(domain->reset) == -EPROBE_DEFER) > + return -EPROBE_DEFER; > return dev_err_probe(domain->dev, PTR_ERR(domain->reset), > "Failed to get domain's resets\n"); dev_err_probe already propagates the error code in its second argument. Seems to me this patch's only effect is to disable deferred probe reason tracking? > + } > > pm_runtime_enable(domain->dev); > >
Am Donnerstag, dem 29.04.2021 um 15:30 +0800 schrieb Peng Fan (OSS): > From: Peng Fan <peng.fan@nxp.com> > > When gpcv2 probe, the reset controller might not be ready, so we need > defer probe I agree with Ahmad. dev_err_probe properly propagates the PROBE_DEFER return, so this patch should be dropped. Regards, Lucas > Signed-off-by: Peng Fan <peng.fan@nxp.com> > --- > drivers/soc/imx/gpcv2.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/soc/imx/gpcv2.c b/drivers/soc/imx/gpcv2.c > index 072f519462a5..49dd137f6b94 100644 > --- a/drivers/soc/imx/gpcv2.c > +++ b/drivers/soc/imx/gpcv2.c > @@ -784,9 +784,12 @@ static int imx_pgc_domain_probe(struct platform_device *pdev) > "Failed to get domain's clocks\n"); > > > > > domain->reset = devm_reset_control_array_get_optional_exclusive(domain->dev); > - if (IS_ERR(domain->reset)) > + if (IS_ERR(domain->reset)) { > + if (PTR_ERR(domain->reset) == -EPROBE_DEFER) > + return -EPROBE_DEFER; > return dev_err_probe(domain->dev, PTR_ERR(domain->reset), > "Failed to get domain's resets\n"); > + } > > > > > pm_runtime_enable(domain->dev); > > > >
On 2021/4/29 22:30, Lucas Stach wrote: > Am Donnerstag, dem 29.04.2021 um 15:30 +0800 schrieb Peng Fan (OSS): >> From: Peng Fan <peng.fan@nxp.com> >> >> When gpcv2 probe, the reset controller might not be ready, so we need >> defer probe > > I agree with Ahmad. dev_err_probe properly propagates the PROBE_DEFER > return, so this patch should be dropped. Sure. Drop in V2. Thanks, Peng. > > Regards, > Lucas > >> Signed-off-by: Peng Fan <peng.fan@nxp.com> >> --- >> drivers/soc/imx/gpcv2.c | 5 ++++- >> 1 file changed, 4 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/soc/imx/gpcv2.c b/drivers/soc/imx/gpcv2.c >> index 072f519462a5..49dd137f6b94 100644 >> --- a/drivers/soc/imx/gpcv2.c >> +++ b/drivers/soc/imx/gpcv2.c >> @@ -784,9 +784,12 @@ static int imx_pgc_domain_probe(struct platform_device *pdev) >> "Failed to get domain's clocks\n"); >> >> >> >> >> domain->reset = devm_reset_control_array_get_optional_exclusive(domain->dev); >> - if (IS_ERR(domain->reset)) >> + if (IS_ERR(domain->reset)) { >> + if (PTR_ERR(domain->reset) == -EPROBE_DEFER) >> + return -EPROBE_DEFER; >> return dev_err_probe(domain->dev, PTR_ERR(domain->reset), >> "Failed to get domain's resets\n"); >> + } >> >> >> >> >> pm_runtime_enable(domain->dev); >> >> >> >> > >
diff --git a/drivers/soc/imx/gpcv2.c b/drivers/soc/imx/gpcv2.c index 072f519462a5..49dd137f6b94 100644 --- a/drivers/soc/imx/gpcv2.c +++ b/drivers/soc/imx/gpcv2.c @@ -784,9 +784,12 @@ static int imx_pgc_domain_probe(struct platform_device *pdev) "Failed to get domain's clocks\n"); domain->reset = devm_reset_control_array_get_optional_exclusive(domain->dev); - if (IS_ERR(domain->reset)) + if (IS_ERR(domain->reset)) { + if (PTR_ERR(domain->reset) == -EPROBE_DEFER) + return -EPROBE_DEFER; return dev_err_probe(domain->dev, PTR_ERR(domain->reset), "Failed to get domain's resets\n"); + } pm_runtime_enable(domain->dev);