[PATCH] pwm: atmel: Make use of dev_err_probe()

Uwe Kleine-König u.kleine-koenig at pengutronix.de
Wed Aug 12 04:32:04 EDT 2020


On Wed, Aug 12, 2020 at 09:20:02AM +0100, Lee Jones wrote:
> On Wed, 12 Aug 2020, Uwe Kleine-König wrote:
> 
> > Add an error message for failure points that currently lack a message
> > and convert dev_err to dev_err_probe() which does the right thing for
> > -EPROBE_DEFER. Also slightly simplify the error handling.
> > 
> > Signed-off-by: Uwe Kleine-König <u.kleine-koenig at pengutronix.de>
> > ---
> >  drivers/pwm/pwm-atmel.c | 24 +++++++++++-------------
> >  1 file changed, 11 insertions(+), 13 deletions(-)
> > 
> > diff --git a/drivers/pwm/pwm-atmel.c b/drivers/pwm/pwm-atmel.c
> > index 6161e7e3e9ac..aa0b36695dc7 100644
> > --- a/drivers/pwm/pwm-atmel.c
> > +++ b/drivers/pwm/pwm-atmel.c
> > @@ -415,17 +415,18 @@ static int atmel_pwm_probe(struct platform_device *pdev)
> >  	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> >  	atmel_pwm->base = devm_ioremap_resource(&pdev->dev, res);
> >  	if (IS_ERR(atmel_pwm->base))
> > -		return PTR_ERR(atmel_pwm->base);
> > +		return dev_err_probe(&pdev->dev, PTR_ERR(atmel_pwm->base),
> > +				     "Failed to remap register space\n");
> 
> This is a regression.
> 
> devm_ioremap_resource() already emits and error message for !-ENOMEM.
> 
> -ENOMEM cases should fail silently.

ah right. Maybe dev_err_probe() should do this right, too?

> >  	atmel_pwm->clk = devm_clk_get(&pdev->dev, NULL);
> >  	if (IS_ERR(atmel_pwm->clk))
> > -		return PTR_ERR(atmel_pwm->clk);
> > +		return dev_err_probe(&pdev->dev, PTR_ERR(atmel_pwm->clk),
> > +				     "Failed to get clock\n");
> 
> Isn't dev_err_probe() only useful for drivers handling -EPROBE_DEFER?

devm_clk_get() might return -EPROBE_DEFER.

> >  	ret = clk_prepare(atmel_pwm->clk);
> > -	if (ret) {
> > -		dev_err(&pdev->dev, "failed to prepare PWM clock\n");
> > -		return ret;
> > -	}
> > +	if (ret)
> > +		return dev_err_probe(&pdev->dev, ret,
> > +				     "Failed to prepare PWM clock\n");
> 
> As above.

I only checked quickly and didn't find an instance where clk_prepare can
return -EPROBE_DEFER, but even if it doesn't it works fine.

Best regards
Uwe

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | https://www.pengutronix.de/ |
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20200812/f365795a/attachment-0001.sig>


More information about the linux-arm-kernel mailing list