Re: [PATCH] iio: adc: bcm_iproc_adc: Use dev_err_probe() for resource acquisition failures

From: Jonathan Cameron

Date: Sun Jul 26 2026 - 22:40:18 EST


On Sun, 26 Jul 2026 23:33:19 +0530
mdshahid03@xxxxxxxxx wrote:

> From: Mohammad Shahid <mdshahid03@xxxxxxxxx>
>
> 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@xxxxxxxxx>
> ---
> 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)