Message ID | 20201105174434.1817539-2-l.stach@pengutronix.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | i.MX8MM power domain support | expand |
On Thu, Nov 5, 2020 at 11:44 AM Lucas Stach <l.stach@pengutronix.de> wrote: > > Switch to "goto out..." error handling in domain driver probe to > avoid repeating all the error paths. > > Signed-off-by: Lucas Stach <l.stach@pengutronix.de> > Reviewed-by: Marek Vasut <marex@denx.de> I can confirm the USB is functional now without having to turn it on in the bootloader on the imx8mm-beacon-kit. For the series: Tested-by: Adam Ford <aford173@gmail.com> > --- > drivers/soc/imx/gpcv2.c | 13 +++++++++---- > 1 file changed, 9 insertions(+), 4 deletions(-) > > diff --git a/drivers/soc/imx/gpcv2.c b/drivers/soc/imx/gpcv2.c > index db7e7fc321b1..512e6f4acafd 100644 > --- a/drivers/soc/imx/gpcv2.c > +++ b/drivers/soc/imx/gpcv2.c > @@ -502,18 +502,23 @@ static int imx_pgc_domain_probe(struct platform_device *pdev) > ret = pm_genpd_init(&domain->genpd, NULL, true); > if (ret) { > dev_err(domain->dev, "Failed to init power domain\n"); > - imx_pgc_put_clocks(domain); > - return ret; > + goto out_put_clocks; > } > > ret = of_genpd_add_provider_simple(domain->dev->of_node, > &domain->genpd); > if (ret) { > dev_err(domain->dev, "Failed to add genpd provider\n"); > - pm_genpd_remove(&domain->genpd); > - imx_pgc_put_clocks(domain); > + goto out_genpd_remove; > } > > + return 0; > + > +out_genpd_remove: > + pm_genpd_remove(&domain->genpd); > +out_put_clocks: > + imx_pgc_put_clocks(domain); > + > return ret; > } > > -- > 2.20.1 >
diff --git a/drivers/soc/imx/gpcv2.c b/drivers/soc/imx/gpcv2.c index db7e7fc321b1..512e6f4acafd 100644 --- a/drivers/soc/imx/gpcv2.c +++ b/drivers/soc/imx/gpcv2.c @@ -502,18 +502,23 @@ static int imx_pgc_domain_probe(struct platform_device *pdev) ret = pm_genpd_init(&domain->genpd, NULL, true); if (ret) { dev_err(domain->dev, "Failed to init power domain\n"); - imx_pgc_put_clocks(domain); - return ret; + goto out_put_clocks; } ret = of_genpd_add_provider_simple(domain->dev->of_node, &domain->genpd); if (ret) { dev_err(domain->dev, "Failed to add genpd provider\n"); - pm_genpd_remove(&domain->genpd); - imx_pgc_put_clocks(domain); + goto out_genpd_remove; } + return 0; + +out_genpd_remove: + pm_genpd_remove(&domain->genpd); +out_put_clocks: + imx_pgc_put_clocks(domain); + return ret; }