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

From: Christophe JAILLET
Date: Fri Nov 04 2022 - 15:10:39 EST


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-/HTLZasLZWtl57MIdRCFDg@xxxxxxxxxxxxxxxx>
---
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