The Linux Kernel Mailing List
 help / color / mirror / Atom feed
* [PATCH] iio: adc: bcm_iproc_adc: Use dev_err_probe() for resource acquisition failures
@ 2026-07-26 18:03 mdshahid03
  2026-07-27  2:40 ` Jonathan Cameron
  0 siblings, 1 reply; 5+ messages in thread
From: mdshahid03 @ 2026-07-26 18:03 UTC (permalink / raw)
  To: Jonathan Cameron, Ray Jui, Scott Branden
  Cc: David Lechner, Nuno Sá, Andy Shevchenko,
	Broadcom internal kernel review list, linux-iio, linux-arm-kernel,
	linux-kernel, Mohammad Shahid

From: Mohammad Shahid <mdshahid03@gmail.com>

Replace open-coded dev_err() and error returns with dev_err_probe()
for failures from syscon_regmap_lookup_by_phandle() and devm_clk_get()
in the probe path.

This simplifies error handling and properly handles deferred probing.

Signed-off-by: Mohammad Shahid <mdshahid03@gmail.com>
---
 drivers/iio/adc/bcm_iproc_adc.c | 19 ++++++++-----------
 1 file changed, 8 insertions(+), 11 deletions(-)

diff --git a/drivers/iio/adc/bcm_iproc_adc.c b/drivers/iio/adc/bcm_iproc_adc.c
index cf4738b16e62..62f12eecc8b2 100644
--- a/drivers/iio/adc/bcm_iproc_adc.c
+++ b/drivers/iio/adc/bcm_iproc_adc.c
@@ -522,19 +522,16 @@ static int iproc_adc_probe(struct platform_device *pdev)
 
 	adc_priv->regmap = syscon_regmap_lookup_by_phandle(pdev->dev.of_node,
 			   "adc-syscon");
-	if (IS_ERR(adc_priv->regmap)) {
-		dev_err(&pdev->dev, "failed to get handle for tsc syscon\n");
-		ret = PTR_ERR(adc_priv->regmap);
-		return ret;
-	}
+	if (IS_ERR(adc_priv->regmap))
+		return dev_err_probe(&pdev->dev,
+				     PTR_ERR(adc_priv->regmap),
+				     "failed to get handle for tsc syscon\n");
 
 	adc_priv->adc_clk = devm_clk_get(&pdev->dev, "tsc_clk");
-	if (IS_ERR(adc_priv->adc_clk)) {
-		dev_err(&pdev->dev,
-			"failed getting clock tsc_clk\n");
-		ret = PTR_ERR(adc_priv->adc_clk);
-		return ret;
-	}
+	if (IS_ERR(adc_priv->adc_clk))
+		return dev_err_probe(&pdev->dev,
+				     PTR_ERR(adc_priv->adc_clk),
+				     "failed getting clock tsc_clk\n");
 
 	adc_priv->irqno = platform_get_irq(pdev, 0);
 	if (adc_priv->irqno < 0)
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] iio: adc: bcm_iproc_adc: Use dev_err_probe() for resource acquisition failures
  2026-07-26 18:03 [PATCH] iio: adc: bcm_iproc_adc: Use dev_err_probe() for resource acquisition failures mdshahid03
@ 2026-07-27  2:40 ` Jonathan Cameron
  2026-07-30 14:02   ` mdshahid03
  0 siblings, 1 reply; 5+ messages in thread
From: Jonathan Cameron @ 2026-07-27  2:40 UTC (permalink / raw)
  To: mdshahid03
  Cc: Ray Jui, Scott Branden, David Lechner, Nuno Sá,
	Andy Shevchenko, Broadcom internal kernel review list, linux-iio,
	linux-arm-kernel, linux-kernel

On Sun, 26 Jul 2026 23:33:19 +0530
mdshahid03@gmail.com wrote:

> From: Mohammad Shahid <mdshahid03@gmail.com>
> 
> Replace open-coded dev_err() and error returns with dev_err_probe()
> for failures from syscon_regmap_lookup_by_phandle() and devm_clk_get()
> in the probe path.
> 
> This simplifies error handling and properly handles deferred probing.
> 
> Signed-off-by: Mohammad Shahid <mdshahid03@gmail.com>
> ---
>  drivers/iio/adc/bcm_iproc_adc.c | 19 ++++++++-----------
>  1 file changed, 8 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/iio/adc/bcm_iproc_adc.c b/drivers/iio/adc/bcm_iproc_adc.c
> index cf4738b16e62..62f12eecc8b2 100644
> --- a/drivers/iio/adc/bcm_iproc_adc.c
> +++ b/drivers/iio/adc/bcm_iproc_adc.c
> @@ -522,19 +522,16 @@ static int iproc_adc_probe(struct platform_device *pdev)
>  
>  	adc_priv->regmap = syscon_regmap_lookup_by_phandle(pdev->dev.of_node,
>  			   "adc-syscon");
> -	if (IS_ERR(adc_priv->regmap)) {
> -		dev_err(&pdev->dev, "failed to get handle for tsc syscon\n");
> -		ret = PTR_ERR(adc_priv->regmap);
> -		return ret;
> -	}
> +	if (IS_ERR(adc_priv->regmap))
> +		return dev_err_probe(&pdev->dev,
> +				     PTR_ERR(adc_priv->regmap),
> +				     "failed to get handle for tsc syscon\n");
>  
>  	adc_priv->adc_clk = devm_clk_get(&pdev->dev, "tsc_clk");
> -	if (IS_ERR(adc_priv->adc_clk)) {
> -		dev_err(&pdev->dev,
> -			"failed getting clock tsc_clk\n");
> -		ret = PTR_ERR(adc_priv->adc_clk);
> -		return ret;
> -	}
> +	if (IS_ERR(adc_priv->adc_clk))
> +		return dev_err_probe(&pdev->dev,
> +				     PTR_ERR(adc_priv->adc_clk),
> +				     "failed getting clock tsc_clk\n");

Why stop here?  There seem to be a number of other prints that follow
that would benefit from dev_err_probe() at least in terms of simplifying
the code if not due to the handling of potential deferred probes.

Please look at them all but also consider if the print is necessary.
Beware there are some mass removal patches dropping some specific
prints so you may cross with those.

Jonathan
>  
>  	adc_priv->irqno = platform_get_irq(pdev, 0);
>  	if (adc_priv->irqno < 0)


^ permalink raw reply	[flat|nested] 5+ messages in thread

* (no subject)
  2026-07-27  2:40 ` Jonathan Cameron
@ 2026-07-30 14:02   ` mdshahid03
  2026-07-30 14:02     ` [PATCH v2] iio: adc: bcm_iproc_adc: Convert probe() to use dev_err_probe() mdshahid03
  0 siblings, 1 reply; 5+ messages in thread
From: mdshahid03 @ 2026-07-30 14:02 UTC (permalink / raw)
  To: Jonathan Cameron
  Cc: Andy Shevchenko, Broadcom internal kernel review list,
	David Lechner, linux-arm-kernel, linux-iio, linux-kernel,
	Mohammad Shahid, Nuno Sá, Ray Jui, Scott Branden

Hi Jonathan,

Thanks for the review.

This v2 updates all applicable probe-time error paths to use
dev_err_probe() and removes the redundant error message after
iproc_adc_enable(), addressing your feedback.

Thanks,
Mohammad Shahid


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v2] iio: adc: bcm_iproc_adc: Convert probe() to use dev_err_probe()
  2026-07-30 14:02   ` mdshahid03
@ 2026-07-30 14:02     ` mdshahid03
  2026-07-30 14:29       ` Joshua Crofts
  0 siblings, 1 reply; 5+ messages in thread
From: mdshahid03 @ 2026-07-30 14:02 UTC (permalink / raw)
  To: Jonathan Cameron
  Cc: Andy Shevchenko, Broadcom internal kernel review list,
	David Lechner, linux-arm-kernel, linux-iio, linux-kernel,
	Mohammad Shahid, Nuno Sá, Ray Jui, Scott Branden

From: Mohammad Shahid <mdshahid03@gmail.com>

Replace open-coded probe error handling with dev_err_probe() for
resource acquisition and initialization failures.

This simplifies the error paths, avoids repetitive error handling,
and automatically suppresses duplicate messages when -EPROBE_DEFER is
returned while preserving the existing error messages.

Also remove the redundant error message after iproc_adc_enable(),
allowing the error to be propagated without additional logging.

Signed-off-by: Mohammad Shahid <mdshahid03@gmail.com>
---
v2:
- Convert remaining probe error paths to use dev_err_probe().
- Remove redundant error message after iproc_adc_enable()
 drivers/iio/adc/bcm_iproc_adc.c | 52 +++++++++++++++------------------
 1 file changed, 24 insertions(+), 28 deletions(-)

diff --git a/drivers/iio/adc/bcm_iproc_adc.c b/drivers/iio/adc/bcm_iproc_adc.c
index cf4738b16e62..08e056468d8e 100644
--- a/drivers/iio/adc/bcm_iproc_adc.c
+++ b/drivers/iio/adc/bcm_iproc_adc.c
@@ -522,52 +522,48 @@ static int iproc_adc_probe(struct platform_device *pdev)
 
 	adc_priv->regmap = syscon_regmap_lookup_by_phandle(pdev->dev.of_node,
 			   "adc-syscon");
-	if (IS_ERR(adc_priv->regmap)) {
-		dev_err(&pdev->dev, "failed to get handle for tsc syscon\n");
-		ret = PTR_ERR(adc_priv->regmap);
-		return ret;
-	}
+	if (IS_ERR(adc_priv->regmap))
+		return dev_err_probe(&pdev->dev,
+				     PTR_ERR(adc_priv->regmap),
+				     "failed to get handle for tsc syscon\n");
 
 	adc_priv->adc_clk = devm_clk_get(&pdev->dev, "tsc_clk");
-	if (IS_ERR(adc_priv->adc_clk)) {
-		dev_err(&pdev->dev,
-			"failed getting clock tsc_clk\n");
-		ret = PTR_ERR(adc_priv->adc_clk);
-		return ret;
-	}
+	if (IS_ERR(adc_priv->adc_clk))
+		return dev_err_probe(&pdev->dev,
+				     PTR_ERR(adc_priv->adc_clk),
+				     "failed getting clock tsc_clk\n");
 
 	adc_priv->irqno = platform_get_irq(pdev, 0);
 	if (adc_priv->irqno < 0)
-		return adc_priv->irqno;
+		return dev_err_probe(&pdev->dev,
+				     adc_priv->irqno,
+				     "failed to get IRQ\n");
 
 	ret = regmap_clear_bits(adc_priv->regmap, IPROC_REGCTL2,
 				IPROC_ADC_AUXIN_SCAN_ENA);
-	if (ret) {
-		dev_err(&pdev->dev, "failed to write IPROC_REGCTL2 %d\n", ret);
-		return ret;
-	}
+	if (ret)
+		return dev_err_probe(&pdev->dev,
+				     ret,
+				     "failed to write IPROC_REGCTL2\n");
 
 	ret = devm_request_threaded_irq(&pdev->dev, adc_priv->irqno,
 				iproc_adc_interrupt_handler,
 				iproc_adc_interrupt_thread,
 				IRQF_SHARED, "iproc-adc", indio_dev);
-	if (ret) {
-		dev_err(&pdev->dev, "request_irq error %d\n", ret);
-		return ret;
-	}
+	if (ret)
+		return dev_err_probe(&pdev->dev,
+				     ret,
+				     "failed to request IRQ\n");
 
 	ret = clk_prepare_enable(adc_priv->adc_clk);
-	if (ret) {
-		dev_err(&pdev->dev,
-			"clk_prepare_enable failed %d\n", ret);
-		return ret;
-	}
+	if (ret)
+		return dev_err_probe(&pdev->dev,
+				     ret,
+				     "failed to enable clock\n");
 
 	ret = iproc_adc_enable(indio_dev);
-	if (ret) {
-		dev_err(&pdev->dev, "failed to enable adc %d\n", ret);
+	if (ret)
 		goto err_adc_enable;
-	}
 
 	indio_dev->name = "iproc-static-adc";
 	indio_dev->info = &iproc_adc_iio_info;
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v2] iio: adc: bcm_iproc_adc: Convert probe() to use dev_err_probe()
  2026-07-30 14:02     ` [PATCH v2] iio: adc: bcm_iproc_adc: Convert probe() to use dev_err_probe() mdshahid03
@ 2026-07-30 14:29       ` Joshua Crofts
  0 siblings, 0 replies; 5+ messages in thread
From: Joshua Crofts @ 2026-07-30 14:29 UTC (permalink / raw)
  To: mdshahid03
  Cc: Jonathan Cameron, Andy Shevchenko,
	Broadcom internal kernel review list, David Lechner,
	linux-arm-kernel, linux-iio, linux-kernel, Nuno Sá, Ray Jui,
	Scott Branden

On Thu, 30 Jul 2026 19:32:45 +0530
mdshahid03@gmail.com wrote:

> From: Mohammad Shahid <mdshahid03@gmail.com>
> 
> Replace open-coded probe error handling with dev_err_probe() for
> resource acquisition and initialization failures.
> 
> This simplifies the error paths, avoids repetitive error handling,
> and automatically suppresses duplicate messages when -EPROBE_DEFER is
> returned while preserving the existing error messages.
> 
> Also remove the redundant error message after iproc_adc_enable(),
> allowing the error to be propagated without additional logging.
> 
> Signed-off-by: Mohammad Shahid <mdshahid03@gmail.com>
> ---

Hi Mohammad,

Please don't reply with a new patch version to to the previous patch,
it breaks tools like b4 and appears weird in people's email clients.

Since this is just a matter of resending, please send the patch again
(not replying to the previous thread) with the tag [RESEND PATCH] in
the subject instead.

Thanks

-- 
Kind regards,
Joshua Crofts

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-07-30 14:29 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-26 18:03 [PATCH] iio: adc: bcm_iproc_adc: Use dev_err_probe() for resource acquisition failures mdshahid03
2026-07-27  2:40 ` Jonathan Cameron
2026-07-30 14:02   ` mdshahid03
2026-07-30 14:02     ` [PATCH v2] iio: adc: bcm_iproc_adc: Convert probe() to use dev_err_probe() mdshahid03
2026-07-30 14:29       ` Joshua Crofts

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox