2022-11-04 17:37:07

by Nate Drude

[permalink] [raw]
Subject: [PATCH] iio: adc: hx711: remove errors during deferred probe

This patch removes noisy kernel messages like "failed to sck-gpiod" or
"failed to get dout-gpiod" when the probe is deferred.

Signed-off-by: Nate Drude <[email protected]>
---
drivers/iio/adc/hx711.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/drivers/iio/adc/hx711.c b/drivers/iio/adc/hx711.c
index f7ee856a6b8b..8ba4a5b113aa 100644
--- a/drivers/iio/adc/hx711.c
+++ b/drivers/iio/adc/hx711.c
@@ -482,8 +482,9 @@ static int hx711_probe(struct platform_device *pdev)
*/
hx711_data->gpiod_pd_sck = devm_gpiod_get(dev, "sck", GPIOD_OUT_LOW);
if (IS_ERR(hx711_data->gpiod_pd_sck)) {
- dev_err(dev, "failed to get sck-gpiod: err=%ld\n",
- PTR_ERR(hx711_data->gpiod_pd_sck));
+ if (PTR_ERR(hx711_data->gpiod_pd_sck) != -EPROBE_DEFER)
+ dev_err(dev, "failed to get sck-gpiod: err=%ld\n",
+ PTR_ERR(hx711_data->gpiod_pd_sck));
return PTR_ERR(hx711_data->gpiod_pd_sck);
}

@@ -493,8 +494,9 @@ static int hx711_probe(struct platform_device *pdev)
*/
hx711_data->gpiod_dout = devm_gpiod_get(dev, "dout", GPIOD_IN);
if (IS_ERR(hx711_data->gpiod_dout)) {
- dev_err(dev, "failed to get dout-gpiod: err=%ld\n",
- PTR_ERR(hx711_data->gpiod_dout));
+ if (PTR_ERR(hx711_data->gpiod_dout) != -EPROBE_DEFER)
+ dev_err(dev, "failed to get dout-gpiod: err=%ld\n",
+ PTR_ERR(hx711_data->gpiod_dout));
return PTR_ERR(hx711_data->gpiod_dout);
}

--
2.38.1



2022-11-04 19:21:05

by Christophe JAILLET

[permalink] [raw]
Subject: Re: [PATCH] iio: adc: hx711: remove errors during deferred probe

Le 04/11/2022 à 18:22, Nate Drude a écrit :
> This patch removes noisy kernel messages like "failed to sck-gpiod" or
> "failed to get dout-gpiod" when the probe is deferred.
>
> Signed-off-by: Nate Drude <nate.d-/[email protected]>
> ---
> drivers/iio/adc/hx711.c | 10 ++++++----
> 1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/iio/adc/hx711.c b/drivers/iio/adc/hx711.c
> index f7ee856a6b8b..8ba4a5b113aa 100644
> --- a/drivers/iio/adc/hx711.c
> +++ b/drivers/iio/adc/hx711.c
> @@ -482,8 +482,9 @@ static int hx711_probe(struct platform_device *pdev)
> */
> hx711_data->gpiod_pd_sck = devm_gpiod_get(dev, "sck", GPIOD_OUT_LOW);
> if (IS_ERR(hx711_data->gpiod_pd_sck)) {
> - dev_err(dev, "failed to get sck-gpiod: err=%ld\n",
> - PTR_ERR(hx711_data->gpiod_pd_sck));
> + if (PTR_ERR(hx711_data->gpiod_pd_sck) != -EPROBE_DEFER)
> + dev_err(dev, "failed to get sck-gpiod: err=%ld\n",
> + PTR_ERR(hx711_data->gpiod_pd_sck));
> return PTR_ERR(hx711_data->gpiod_pd_sck);
> }
>
> @@ -493,8 +494,9 @@ static int hx711_probe(struct platform_device *pdev)
> */
> hx711_data->gpiod_dout = devm_gpiod_get(dev, "dout", GPIOD_IN);
> if (IS_ERR(hx711_data->gpiod_dout)) {
> - dev_err(dev, "failed to get dout-gpiod: err=%ld\n",
> - PTR_ERR(hx711_data->gpiod_dout));
> + if (PTR_ERR(hx711_data->gpiod_dout) != -EPROBE_DEFER)
> + dev_err(dev, "failed to get dout-gpiod: err=%ld\n",
> + PTR_ERR(hx711_data->gpiod_dout));
> return PTR_ERR(hx711_data->gpiod_dout);
> }
>

Hi,
using dev_err_probe() looks like a better candidate for that.

It can be can folded with the return (saving some LoC and the {} around
the error handling path), and display the error code in a human readable
manner.

CJ