[PATCH 1/7] iio: frequency: adrf6780: use dev_err_probe in probe path

Antoniu Miclaus posted 7 patches 1 month, 1 week ago
There is a newer version of this series
[PATCH 1/7] iio: frequency: adrf6780: use dev_err_probe in probe path
Posted by Antoniu Miclaus 1 month, 1 week ago
Replace dev_err() + return with dev_err_probe() in adrf6780_reset()
and adrf6780_init(), which are called during probe. This simplifies
error handling.

Signed-off-by: Antoniu Miclaus <antoniu.miclaus@analog.com>
---
 drivers/iio/frequency/adrf6780.c | 21 +++++++++------------
 1 file changed, 9 insertions(+), 12 deletions(-)

diff --git a/drivers/iio/frequency/adrf6780.c b/drivers/iio/frequency/adrf6780.c
index a7a21f929970..bdb922667bc2 100644
--- a/drivers/iio/frequency/adrf6780.c
+++ b/drivers/iio/frequency/adrf6780.c
@@ -351,18 +351,16 @@ static int adrf6780_reset(struct adrf6780_state *st)
 	ret = __adrf6780_spi_update_bits(st, ADRF6780_REG_CONTROL,
 					 ADRF6780_SOFT_RESET_MSK,
 					 FIELD_PREP(ADRF6780_SOFT_RESET_MSK, 1));
-	if (ret) {
-		dev_err(&spi->dev, "ADRF6780 SPI software reset failed.\n");
-		return ret;
-	}
+	if (ret)
+		return dev_err_probe(&spi->dev, ret,
+				     "ADRF6780 SPI software reset failed.\n");
 
 	ret = __adrf6780_spi_update_bits(st, ADRF6780_REG_CONTROL,
 					 ADRF6780_SOFT_RESET_MSK,
 					 FIELD_PREP(ADRF6780_SOFT_RESET_MSK, 0));
-	if (ret) {
-		dev_err(&spi->dev, "ADRF6780 SPI software reset disable failed.\n");
-		return ret;
-	}
+	if (ret)
+		return dev_err_probe(&spi->dev, ret,
+				     "ADRF6780 SPI software reset disable failed.\n");
 
 	return 0;
 }
@@ -383,10 +381,9 @@ static int adrf6780_init(struct adrf6780_state *st)
 		return ret;
 
 	chip_id = FIELD_GET(ADRF6780_CHIP_ID_MSK, chip_id);
-	if (chip_id != ADRF6780_CHIP_ID) {
-		dev_err(&spi->dev, "ADRF6780 Invalid Chip ID.\n");
-		return -EINVAL;
-	}
+	if (chip_id != ADRF6780_CHIP_ID)
+		return dev_err_probe(&spi->dev, -EINVAL,
+				     "ADRF6780 Invalid Chip ID.\n");
 
 	enable_reg_msk = ADRF6780_VGA_BUFFER_EN_MSK |
 			ADRF6780_DETECTOR_EN_MSK |
-- 
2.43.0
Re: [PATCH 1/7] iio: frequency: adrf6780: use dev_err_probe in probe path
Posted by Andy Shevchenko 1 month, 1 week ago
On Fri, Feb 20, 2026 at 03:11:39PM +0200, Antoniu Miclaus wrote:
> Replace dev_err() + return with dev_err_probe() in adrf6780_reset()
> and adrf6780_init(), which are called during probe. This simplifies
> error handling.

...

>  	ret = __adrf6780_spi_update_bits(st, ADRF6780_REG_CONTROL,
>  					 ADRF6780_SOFT_RESET_MSK,
>  					 FIELD_PREP(ADRF6780_SOFT_RESET_MSK, 1));
> -	if (ret) {
> -		dev_err(&spi->dev, "ADRF6780 SPI software reset failed.\n");
> -		return ret;
> -	}
> +	if (ret)
> +		return dev_err_probe(&spi->dev, ret,
> +				     "ADRF6780 SPI software reset failed.\n");

Consider adding

	struct device *dev = &spi->dev;

at the top, so this line becomes

		return dev_err_probe(dev, ret, "ADRF6780 SPI software reset failed.\n");

(while at it, I would dare to drop 'SPI' from the message as is easy to derive that
 the device in question is connected to SPI bus.)

		return dev_err_probe(dev, ret, "ADRF6780 software reset failed.\n");

...

Ditto for the rest.

-- 
With Best Regards,
Andy Shevchenko
Re: [PATCH 1/7] iio: frequency: adrf6780: use dev_err_probe in probe path
Posted by Jonathan Cameron 1 month, 1 week ago
On Fri, 20 Feb 2026 15:56:54 +0200
Andy Shevchenko <andriy.shevchenko@intel.com> wrote:

> On Fri, Feb 20, 2026 at 03:11:39PM +0200, Antoniu Miclaus wrote:
> > Replace dev_err() + return with dev_err_probe() in adrf6780_reset()
> > and adrf6780_init(), which are called during probe. This simplifies
> > error handling.  
> 
> ...
> 
> >  	ret = __adrf6780_spi_update_bits(st, ADRF6780_REG_CONTROL,
> >  					 ADRF6780_SOFT_RESET_MSK,
> >  					 FIELD_PREP(ADRF6780_SOFT_RESET_MSK, 1));
> > -	if (ret) {
> > -		dev_err(&spi->dev, "ADRF6780 SPI software reset failed.\n");
> > -		return ret;
> > -	}
> > +	if (ret)
> > +		return dev_err_probe(&spi->dev, ret,
> > +				     "ADRF6780 SPI software reset failed.\n");  
> 
> Consider adding
> 
> 	struct device *dev = &spi->dev;

spi itself isn't used so
	struct device *dev = &st->spi->dev;

probably make sense here

Might be worth similar changes for probe() etc where there is a lot of &spi->dev
in use. At that point it would probably need to be a separate precursor patch to this one.

Thanks,

Jonathan


> 
> at the top, so this line becomes
> 
> 		return dev_err_probe(dev, ret, "ADRF6780 SPI software reset failed.\n");
> 
> (while at it, I would dare to drop 'SPI' from the message as is easy to derive that
>  the device in question is connected to SPI bus.)
> 
> 		return dev_err_probe(dev, ret, "ADRF6780 software reset failed.\n");
> 
> ...
> 
> Ditto for the rest.
>
Re: [PATCH 1/7] iio: frequency: adrf6780: use dev_err_probe in probe path
Posted by Andy Shevchenko 1 month, 1 week ago
On Fri, Feb 20, 2026 at 03:56:58PM +0200, Andy Shevchenko wrote:
> On Fri, Feb 20, 2026 at 03:11:39PM +0200, Antoniu Miclaus wrote:

...

> >  	ret = __adrf6780_spi_update_bits(st, ADRF6780_REG_CONTROL,
> >  					 ADRF6780_SOFT_RESET_MSK,
> >  					 FIELD_PREP(ADRF6780_SOFT_RESET_MSK, 1));
> > -	if (ret) {
> > -		dev_err(&spi->dev, "ADRF6780 SPI software reset failed.\n");
> > -		return ret;
> > -	}
> > +	if (ret)
> > +		return dev_err_probe(&spi->dev, ret,
> > +				     "ADRF6780 SPI software reset failed.\n");
> 
> Consider adding
> 
> 	struct device *dev = &spi->dev;
> 
> at the top, so this line becomes
> 
> 		return dev_err_probe(dev, ret, "ADRF6780 SPI software reset failed.\n");
> 
> (while at it, I would dare to drop 'SPI' from the message as is easy to derive that
>  the device in question is connected to SPI bus.)
> 
> 		return dev_err_probe(dev, ret, "ADRF6780 software reset failed.\n");

...

> Ditto for the rest.

And also for the entire series (except patch 5 where it seems already
the case).

-- 
With Best Regards,
Andy Shevchenko