On Thu, Aug 29, 2024 at 02:48:59PM +0800, Wang Jianzheng wrote: > The devm_clk_get_enabled() helpers: > - call devm_clk_get() > - call clk_prepare_enable() and register what is needed in order to > call clk_disable_unprepare() when needed, as a managed resource. > > This simplifies the code and avoids the calls to clk_disable_unprepare(). > > Signed-off-by: Wang Jianzheng <wangjianzheng@xxxxxxxx> > --- > drivers/pinctrl/mvebu/pinctrl-dove.c | 45 +++++++++------------------- > 1 file changed, 14 insertions(+), 31 deletions(-) > > diff --git a/drivers/pinctrl/mvebu/pinctrl-dove.c b/drivers/pinctrl/mvebu/pinctrl-dove.c > index dce601d99372..1c2a292ebbd9 100644 > --- a/drivers/pinctrl/mvebu/pinctrl-dove.c > +++ b/drivers/pinctrl/mvebu/pinctrl-dove.c > @@ -767,7 +767,7 @@ static int dove_pinctrl_probe(struct platform_device *pdev) > struct resource fb_res; > struct mvebu_mpp_ctrl_data *mpp_data; > void __iomem *base; > - int i, ret; > + int i; > > pdev->dev.platform_data = (void *)device_get_match_data(&pdev->dev); > > @@ -775,25 +775,20 @@ static int dove_pinctrl_probe(struct platform_device *pdev) > * General MPP Configuration Register is part of pdma registers. > * grab clk to make sure it is ticking. > */ > - clk = devm_clk_get(&pdev->dev, NULL); > + clk = devm_clk_get_enabled(&pdev->dev, NULL); > if (IS_ERR(clk)) { > dev_err(&pdev->dev, "Unable to get pdma clock"); > return PTR_ERR(clk); > } > - clk_prepare_enable(clk); > > base = devm_platform_get_and_ioremap_resource(pdev, 0, &mpp_res); > - if (IS_ERR(base)) { > - ret = PTR_ERR(base); > - goto err_probe; > - } > + if (IS_ERR(base)) > + return PTR_ERR(base); It appears that in patch 3 you add all these goto err_probe, and now you delete them? Please reverse the order of these two patches! Andrew --- pw-bot: cr