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

Jonathan Cameron <[email protected]>
Newsgroups org.kernel.vger.linux-iio,org.infradead.lists.linux-arm-kernel,org.kernel.vger.linux-kernel
Message-ID <20260727034009.5c6b0be9@jic23-huawei>
On Sun, 26 Jul 2026 23:33:19 +0530
[email protected] wrote:

> From: Mohammad Shahid <[email protected]>
> 
> 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 <[email protected]>
> ---
>  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)
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.