Message ID | 20210330181755.204339-4-u.kleine-koenig@pengutronix.de |
---|---|
State | Superseded |
Headers | show |
Series | clk: provide new devm helpers for prepared and enabled clocks | expand |
On 30/03/2021 at 20:17, Uwe Kleine-König wrote: > With devm_clk_get_prepared() caring to unprepare the clock the error > path and remove callback can be simplified accordingly. > > Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Looks good to me: Acked-by: Nicolas Ferre <nicolas.ferre@microchip.com> > --- > drivers/pwm/pwm-atmel.c | 15 ++------------- > 1 file changed, 2 insertions(+), 13 deletions(-) > > diff --git a/drivers/pwm/pwm-atmel.c b/drivers/pwm/pwm-atmel.c > index 5813339b597b..d65e23da2582 100644 > --- a/drivers/pwm/pwm-atmel.c > +++ b/drivers/pwm/pwm-atmel.c > @@ -415,16 +415,10 @@ static int atmel_pwm_probe(struct platform_device *pdev) > if (IS_ERR(atmel_pwm->base)) > return PTR_ERR(atmel_pwm->base); > > - atmel_pwm->clk = devm_clk_get(&pdev->dev, NULL); > + atmel_pwm->clk = devm_clk_get_prepared(&pdev->dev, NULL); > if (IS_ERR(atmel_pwm->clk)) > return PTR_ERR(atmel_pwm->clk); > > - ret = clk_prepare(atmel_pwm->clk); > - if (ret) { > - dev_err(&pdev->dev, "failed to prepare PWM clock\n"); > - return ret; > - } > - > atmel_pwm->chip.dev = &pdev->dev; > atmel_pwm->chip.ops = &atmel_pwm_ops; > atmel_pwm->chip.of_xlate = of_pwm_xlate_with_flags; > @@ -435,23 +429,18 @@ static int atmel_pwm_probe(struct platform_device *pdev) > ret = pwmchip_add(&atmel_pwm->chip); > if (ret < 0) { > dev_err(&pdev->dev, "failed to add PWM chip %d\n", ret); > - goto unprepare_clk; > + return ret; > } > > platform_set_drvdata(pdev, atmel_pwm); > > return ret; > - > -unprepare_clk: > - clk_unprepare(atmel_pwm->clk); > - return ret; > } > > static int atmel_pwm_remove(struct platform_device *pdev) > { > struct atmel_pwm_chip *atmel_pwm = platform_get_drvdata(pdev); > > - clk_unprepare(atmel_pwm->clk); > mutex_destroy(&atmel_pwm->isr_lock); > > return pwmchip_remove(&atmel_pwm->chip); > -- > 2.30.2 >
diff --git a/drivers/pwm/pwm-atmel.c b/drivers/pwm/pwm-atmel.c index 5813339b597b..d65e23da2582 100644 --- a/drivers/pwm/pwm-atmel.c +++ b/drivers/pwm/pwm-atmel.c @@ -415,16 +415,10 @@ static int atmel_pwm_probe(struct platform_device *pdev) if (IS_ERR(atmel_pwm->base)) return PTR_ERR(atmel_pwm->base); - atmel_pwm->clk = devm_clk_get(&pdev->dev, NULL); + atmel_pwm->clk = devm_clk_get_prepared(&pdev->dev, NULL); if (IS_ERR(atmel_pwm->clk)) return PTR_ERR(atmel_pwm->clk); - ret = clk_prepare(atmel_pwm->clk); - if (ret) { - dev_err(&pdev->dev, "failed to prepare PWM clock\n"); - return ret; - } - atmel_pwm->chip.dev = &pdev->dev; atmel_pwm->chip.ops = &atmel_pwm_ops; atmel_pwm->chip.of_xlate = of_pwm_xlate_with_flags; @@ -435,23 +429,18 @@ static int atmel_pwm_probe(struct platform_device *pdev) ret = pwmchip_add(&atmel_pwm->chip); if (ret < 0) { dev_err(&pdev->dev, "failed to add PWM chip %d\n", ret); - goto unprepare_clk; + return ret; } platform_set_drvdata(pdev, atmel_pwm); return ret; - -unprepare_clk: - clk_unprepare(atmel_pwm->clk); - return ret; } static int atmel_pwm_remove(struct platform_device *pdev) { struct atmel_pwm_chip *atmel_pwm = platform_get_drvdata(pdev); - clk_unprepare(atmel_pwm->clk); mutex_destroy(&atmel_pwm->isr_lock); return pwmchip_remove(&atmel_pwm->chip);
With devm_clk_get_prepared() caring to unprepare the clock the error path and remove callback can be simplified accordingly. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> --- drivers/pwm/pwm-atmel.c | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-)