From: Lee Jones <lee.jones@linaro.org>
To: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
Cc: Claudiu Beznea <claudiu.beznea@microchip.com>,
Thierry Reding <thierry.reding@gmail.com>,
Nicolas Ferre <nicolas.ferre@microchip.com>,
Alexandre Belloni <alexandre.belloni@bootlin.com>,
Ludovic Desroches <ludovic.desroches@microchip.com>,
linux-pwm@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
kernel@pengutronix.de
Subject: Re: [PATCH] pwm: atmel: Make use of dev_err_probe()
Date: Wed, 12 Aug 2020 09:20:02 +0100 [thread overview]
Message-ID: <20200812082002.GD4354@dell> (raw)
In-Reply-To: <20200812080259.4431-1-u.kleine-koenig@pengutronix.de>
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@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.
> 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?
> 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.
> atmel_pwm->chip.dev = &pdev->dev;
> atmel_pwm->chip.ops = &atmel_pwm_ops;
> @@ -436,17 +437,14 @@ 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;
> + clk_unprepare(atmel_pwm->clk);
> + return dev_err_probe(&pdev->dev, ret,
> + "Failed to add PWM chip\n");
> }
>
> platform_set_drvdata(pdev, atmel_pwm);
>
> - return ret;
> -
> -unprepare_clk:
> - clk_unprepare(atmel_pwm->clk);
> - return ret;
> + return 0;
> }
>
> static int atmel_pwm_remove(struct platform_device *pdev)
--
Lee Jones [李琼斯]
Senior Technical Lead - Developer Services
Linaro.org │ Open source software for Arm SoCs
Follow Linaro: Facebook | Twitter | Blog
WARNING: multiple messages have this Message-ID (diff)
From: Lee Jones <lee.jones@linaro.org>
To: "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>
Cc: linux-pwm@vger.kernel.org,
Alexandre Belloni <alexandre.belloni@bootlin.com>,
Ludovic Desroches <ludovic.desroches@microchip.com>,
Thierry Reding <thierry.reding@gmail.com>,
kernel@pengutronix.de,
Claudiu Beznea <claudiu.beznea@microchip.com>,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH] pwm: atmel: Make use of dev_err_probe()
Date: Wed, 12 Aug 2020 09:20:02 +0100 [thread overview]
Message-ID: <20200812082002.GD4354@dell> (raw)
In-Reply-To: <20200812080259.4431-1-u.kleine-koenig@pengutronix.de>
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@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.
> 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?
> 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.
> atmel_pwm->chip.dev = &pdev->dev;
> atmel_pwm->chip.ops = &atmel_pwm_ops;
> @@ -436,17 +437,14 @@ 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;
> + clk_unprepare(atmel_pwm->clk);
> + return dev_err_probe(&pdev->dev, ret,
> + "Failed to add PWM chip\n");
> }
>
> platform_set_drvdata(pdev, atmel_pwm);
>
> - return ret;
> -
> -unprepare_clk:
> - clk_unprepare(atmel_pwm->clk);
> - return ret;
> + return 0;
> }
>
> static int atmel_pwm_remove(struct platform_device *pdev)
--
Lee Jones [李琼斯]
Senior Technical Lead - Developer Services
Linaro.org │ Open source software for Arm SoCs
Follow Linaro: Facebook | Twitter | Blog
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2020-08-12 8:20 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-08-12 8:02 [PATCH] pwm: atmel: Make use of dev_err_probe() Uwe Kleine-König
2020-08-12 8:02 ` Uwe Kleine-König
2020-08-12 8:20 ` Lee Jones [this message]
2020-08-12 8:20 ` Lee Jones
2020-08-12 8:32 ` Uwe Kleine-König
2020-08-12 8:32 ` Uwe Kleine-König
2020-08-12 8:47 ` Alexandre Belloni
2020-08-12 8:47 ` Alexandre Belloni
2020-08-12 9:25 ` Uwe Kleine-König
2020-08-12 9:25 ` Uwe Kleine-König
2020-08-12 9:34 ` Alexandre Belloni
2020-08-12 9:34 ` Alexandre Belloni
2020-08-12 9:36 ` Lee Jones
2020-08-12 9:36 ` Lee Jones
2020-08-12 8:47 ` Lee Jones
2020-08-12 8:47 ` Lee Jones
2020-08-12 9:40 ` Uwe Kleine-König
2020-08-12 9:40 ` Uwe Kleine-König
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200812082002.GD4354@dell \
--to=lee.jones@linaro.org \
--cc=alexandre.belloni@bootlin.com \
--cc=claudiu.beznea@microchip.com \
--cc=kernel@pengutronix.de \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-pwm@vger.kernel.org \
--cc=ludovic.desroches@microchip.com \
--cc=nicolas.ferre@microchip.com \
--cc=thierry.reding@gmail.com \
--cc=u.kleine-koenig@pengutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.