mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 0/7] iio: use dev_err_probe in probe path for ADI drivers
@ 2026-02-20 13:11 Antoniu Miclaus
  2026-02-20 13:11 ` [PATCH 1/7] iio: frequency: adrf6780: use dev_err_probe in probe path Antoniu Miclaus
                   ` (6 more replies)
  0 siblings, 7 replies; 14+ messages in thread
From: Antoniu Miclaus @ 2026-02-20 13:11 UTC (permalink / raw)
  To: Antoniu Miclaus, Lars-Peter Clausen, Michael Hennerich,
	Jonathan Cameron, David Lechner, Nuno Sá,
	Andy Shevchenko, linux-iio, linux-kernel

Use dev_err_probe() consistently in the probe path of several ADI IIO
drivers. This simplifies error handling and ensures proper logging of
deferred probes.

Drivers updated:
 - adrf6780
 - admv1014
 - admv1013
 - adf4377
 - ade9000
 - ad7293
 - admv8818

Antoniu Miclaus (7):
  iio: frequency: adrf6780: use dev_err_probe in probe path
  iio: frequency: admv1014: use dev_err_probe in probe path
  iio: frequency: admv1013: use dev_err_probe in probe path
  iio: frequency: adf4377: use dev_err_probe in probe path
  iio: adc: ade9000: use dev_err_probe in probe path
  iio: dac: ad7293: use dev_err_probe in probe path
  iio: filter: admv8818: use dev_err_probe in probe path

 drivers/iio/adc/ade9000.c        |  7 ++--
 drivers/iio/dac/ad7293.c         |  7 ++--
 drivers/iio/filter/admv8818.c    | 38 +++++++++----------
 drivers/iio/frequency/adf4377.c  | 28 ++++++--------
 drivers/iio/frequency/admv1013.c | 22 +++++------
 drivers/iio/frequency/admv1014.c | 63 ++++++++++++++------------------
 drivers/iio/frequency/adrf6780.c | 21 +++++------
 7 files changed, 80 insertions(+), 106 deletions(-)

-- 
2.43.0


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

* [PATCH 1/7] iio: frequency: adrf6780: use dev_err_probe in probe path
  2026-02-20 13:11 [PATCH 0/7] iio: use dev_err_probe in probe path for ADI drivers Antoniu Miclaus
@ 2026-02-20 13:11 ` Antoniu Miclaus
  2026-02-20 13:56   ` Andy Shevchenko
  2026-02-20 13:11 ` [PATCH 2/7] iio: frequency: admv1014: " Antoniu Miclaus
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 14+ messages in thread
From: Antoniu Miclaus @ 2026-02-20 13:11 UTC (permalink / raw)
  To: Lars-Peter Clausen, Michael Hennerich, Antoniu Miclaus,
	Jonathan Cameron, David Lechner, Nuno Sá,
	Andy Shevchenko, linux-iio, linux-kernel

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


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

* [PATCH 2/7] iio: frequency: admv1014: use dev_err_probe in probe path
  2026-02-20 13:11 [PATCH 0/7] iio: use dev_err_probe in probe path for ADI drivers Antoniu Miclaus
  2026-02-20 13:11 ` [PATCH 1/7] iio: frequency: adrf6780: use dev_err_probe in probe path Antoniu Miclaus
@ 2026-02-20 13:11 ` Antoniu Miclaus
  2026-02-20 13:11 ` [PATCH 3/7] iio: frequency: admv1013: " Antoniu Miclaus
                   ` (4 subsequent siblings)
  6 siblings, 0 replies; 14+ messages in thread
From: Antoniu Miclaus @ 2026-02-20 13:11 UTC (permalink / raw)
  To: Lars-Peter Clausen, Michael Hennerich, Antoniu Miclaus,
	Jonathan Cameron, David Lechner, Nuno Sá,
	Andy Shevchenko, linux-iio, linux-kernel

Replace dev_err() + return with dev_err_probe() in admv1014_init()
and admv1014_properties_parse(), which are called during probe. This
simplifies error handling.

Signed-off-by: Antoniu Miclaus <antoniu.miclaus@analog.com>
---
 drivers/iio/frequency/admv1014.c | 63 ++++++++++++++------------------
 1 file changed, 27 insertions(+), 36 deletions(-)

diff --git a/drivers/iio/frequency/admv1014.c b/drivers/iio/frequency/admv1014.c
index 7a8f92ec80a2..5fc7c9fdf2e3 100644
--- a/drivers/iio/frequency/admv1014.c
+++ b/drivers/iio/frequency/admv1014.c
@@ -613,10 +613,9 @@ static int admv1014_init(struct admv1014_state *st)
 	int ret;
 
 	ret = regulator_bulk_enable(ADMV1014_NUM_REGULATORS, st->regulators);
-	if (ret) {
-		dev_err(&spi->dev, "Failed to enable regulators");
-		return ret;
-	}
+	if (ret)
+		return dev_err_probe(&spi->dev, ret,
+				     "Failed to enable regulators");
 
 	ret = devm_add_action_or_reset(&spi->dev, admv1014_reg_disable, st->regulators);
 	if (ret)
@@ -643,55 +642,48 @@ static int admv1014_init(struct admv1014_state *st)
 	ret = __admv1014_spi_update_bits(st, ADMV1014_REG_SPI_CONTROL,
 					 ADMV1014_SPI_SOFT_RESET_MSK,
 					 FIELD_PREP(ADMV1014_SPI_SOFT_RESET_MSK, 1));
-	if (ret) {
-		dev_err(&spi->dev, "ADMV1014 SPI software reset failed.\n");
-		return ret;
-	}
+	if (ret)
+		return dev_err_probe(&spi->dev, ret,
+				     "ADMV1014 SPI software reset failed.\n");
 
 	ret = __admv1014_spi_update_bits(st, ADMV1014_REG_SPI_CONTROL,
 					 ADMV1014_SPI_SOFT_RESET_MSK,
 					 FIELD_PREP(ADMV1014_SPI_SOFT_RESET_MSK, 0));
-	if (ret) {
-		dev_err(&spi->dev, "ADMV1014 SPI software reset disable failed.\n");
-		return ret;
-	}
+	if (ret)
+		return dev_err_probe(&spi->dev, ret,
+				     "ADMV1014 SPI software reset disable failed.\n");
 
 	ret = __admv1014_spi_write(st, ADMV1014_REG_VVA_TEMP_COMP, 0x727C);
-	if (ret) {
-		dev_err(&spi->dev, "Writing default Temperature Compensation value failed.\n");
-		return ret;
-	}
+	if (ret)
+		return dev_err_probe(&spi->dev, ret,
+				     "Writing default Temperature Compensation value failed.\n");
 
 	ret = __admv1014_spi_read(st, ADMV1014_REG_SPI_CONTROL, &chip_id);
 	if (ret)
 		return ret;
 
 	chip_id = FIELD_GET(ADMV1014_CHIP_ID_MSK, chip_id);
-	if (chip_id != ADMV1014_CHIP_ID) {
-		dev_err(&spi->dev, "Invalid Chip ID.\n");
-		return -EINVAL;
-	}
+	if (chip_id != ADMV1014_CHIP_ID)
+		return dev_err_probe(&spi->dev, -EINVAL,
+				     "Invalid Chip ID.\n");
 
 	ret = __admv1014_spi_update_bits(st, ADMV1014_REG_QUAD,
 					 ADMV1014_QUAD_SE_MODE_MSK,
 					 FIELD_PREP(ADMV1014_QUAD_SE_MODE_MSK,
 						    st->quad_se_mode));
-	if (ret) {
-		dev_err(&spi->dev, "Writing Quad SE Mode failed.\n");
-		return ret;
-	}
+	if (ret)
+		return dev_err_probe(&spi->dev, ret,
+				     "Writing Quad SE Mode failed.\n");
 
 	ret = admv1014_update_quad_filters(st);
-	if (ret) {
-		dev_err(&spi->dev, "Update Quad Filters failed.\n");
-		return ret;
-	}
+	if (ret)
+		return dev_err_probe(&spi->dev, ret,
+				     "Update Quad Filters failed.\n");
 
 	ret = admv1014_update_vcm_settings(st);
-	if (ret) {
-		dev_err(&spi->dev, "Update VCM Settings failed.\n");
-		return ret;
-	}
+	if (ret)
+		return dev_err_probe(&spi->dev, ret,
+				     "Update VCM Settings failed.\n");
 
 	enable_reg_msk = ADMV1014_P1DB_COMPENSATION_MSK |
 			 ADMV1014_IF_AMP_PD_MSK |
@@ -739,10 +731,9 @@ static int admv1014_properties_parse(struct admv1014_state *st)
 
 	ret = devm_regulator_bulk_get(&st->spi->dev, ADMV1014_NUM_REGULATORS,
 				      st->regulators);
-	if (ret) {
-		dev_err(&spi->dev, "Failed to request regulators");
-		return ret;
-	}
+	if (ret)
+		return dev_err_probe(&spi->dev, ret,
+				     "Failed to request regulators");
 
 	st->clkin = devm_clk_get(&spi->dev, "lo_in");
 	if (IS_ERR(st->clkin))
-- 
2.43.0


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

* [PATCH 3/7] iio: frequency: admv1013: use dev_err_probe in probe path
  2026-02-20 13:11 [PATCH 0/7] iio: use dev_err_probe in probe path for ADI drivers Antoniu Miclaus
  2026-02-20 13:11 ` [PATCH 1/7] iio: frequency: adrf6780: use dev_err_probe in probe path Antoniu Miclaus
  2026-02-20 13:11 ` [PATCH 2/7] iio: frequency: admv1014: " Antoniu Miclaus
@ 2026-02-20 13:11 ` Antoniu Miclaus
  2026-02-20 13:11 ` [PATCH 4/7] iio: frequency: adf4377: " Antoniu Miclaus
                   ` (3 subsequent siblings)
  6 siblings, 0 replies; 14+ messages in thread
From: Antoniu Miclaus @ 2026-02-20 13:11 UTC (permalink / raw)
  To: Antoniu Miclaus, Lars-Peter Clausen, Michael Hennerich,
	Jonathan Cameron, David Lechner, Nuno Sá,
	Andy Shevchenko, linux-iio, linux-kernel

Replace dev_err() + return with dev_err_probe() in admv1013_init(),
admv1013_probe(), and admv1013_properties_parse(), which are called
during probe. This simplifies error handling.

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

diff --git a/drivers/iio/frequency/admv1013.c b/drivers/iio/frequency/admv1013.c
index d8e8d541990f..6e8beea51c25 100644
--- a/drivers/iio/frequency/admv1013.c
+++ b/drivers/iio/frequency/admv1013.c
@@ -461,10 +461,9 @@ static int admv1013_init(struct admv1013_state *st, int vcm_uv)
 		return ret;
 
 	data = FIELD_GET(ADMV1013_CHIP_ID_MSK, data);
-	if (data != ADMV1013_CHIP_ID) {
-		dev_err(&spi->dev, "Invalid Chip ID.\n");
-		return -EINVAL;
-	}
+	if (data != ADMV1013_CHIP_ID)
+		return dev_err_probe(&spi->dev, -EINVAL,
+				     "Invalid Chip ID.\n");
 
 	ret = __admv1013_spi_write(st, ADMV1013_REG_VVA_TEMP_COMP, 0xE700);
 	if (ret)
@@ -549,11 +548,9 @@ static int admv1013_properties_parse(struct admv1013_state *st)
 	ret = devm_regulator_bulk_get_enable(&st->spi->dev,
 					     ARRAY_SIZE(admv1013_vcc_regs),
 					     admv1013_vcc_regs);
-	if (ret) {
-		dev_err_probe(&spi->dev, ret,
-			      "Failed to request VCC regulators\n");
-		return ret;
-	}
+	if (ret)
+		return dev_err_probe(&spi->dev, ret,
+				     "Failed to request VCC regulators\n");
 
 	return 0;
 }
@@ -601,10 +598,9 @@ static int admv1013_probe(struct spi_device *spi)
 	mutex_init(&st->lock);
 
 	ret = admv1013_init(st, vcm_uv);
-	if (ret) {
-		dev_err(&spi->dev, "admv1013 init failed\n");
-		return ret;
-	}
+	if (ret)
+		return dev_err_probe(&spi->dev, ret,
+				     "admv1013 init failed\n");
 
 	ret = devm_add_action_or_reset(&spi->dev, admv1013_powerdown, st);
 	if (ret)
-- 
2.43.0


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

* [PATCH 4/7] iio: frequency: adf4377: use dev_err_probe in probe path
  2026-02-20 13:11 [PATCH 0/7] iio: use dev_err_probe in probe path for ADI drivers Antoniu Miclaus
                   ` (2 preceding siblings ...)
  2026-02-20 13:11 ` [PATCH 3/7] iio: frequency: admv1013: " Antoniu Miclaus
@ 2026-02-20 13:11 ` Antoniu Miclaus
  2026-02-20 13:11 ` [PATCH 5/7] iio: adc: ade9000: " Antoniu Miclaus
                   ` (2 subsequent siblings)
  6 siblings, 0 replies; 14+ messages in thread
From: Antoniu Miclaus @ 2026-02-20 13:11 UTC (permalink / raw)
  To: Antoniu Miclaus, Lars-Peter Clausen, Michael Hennerich,
	Jonathan Cameron, David Lechner, Nuno Sá,
	Andy Shevchenko, linux-iio, linux-kernel

Replace dev_err() + return with dev_err_probe() in adf4377_init(),
which is called during probe. This simplifies error handling.

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

diff --git a/drivers/iio/frequency/adf4377.c b/drivers/iio/frequency/adf4377.c
index fa686f785fa4..7420eb98822a 100644
--- a/drivers/iio/frequency/adf4377.c
+++ b/drivers/iio/frequency/adf4377.c
@@ -712,17 +712,15 @@ static int adf4377_init(struct adf4377_state *st)
 	adf4377_gpio_init(st);
 
 	ret = adf4377_soft_reset(st);
-	if (ret) {
-		dev_err(&spi->dev, "Failed to soft reset.\n");
-		return ret;
-	}
+	if (ret)
+		return dev_err_probe(&spi->dev, ret,
+				     "Failed to soft reset.\n");
 
 	ret = regmap_multi_reg_write(st->regmap, adf4377_reg_defaults,
 				     ARRAY_SIZE(adf4377_reg_defaults));
-	if (ret) {
-		dev_err(&spi->dev, "Failed to set default registers.\n");
-		return ret;
-	}
+	if (ret)
+		return dev_err_probe(&spi->dev, ret,
+				     "Failed to set default registers.\n");
 
 	ret = regmap_update_bits(st->regmap, 0x00,
 				 ADF4377_0000_SDO_ACTIVE_MSK | ADF4377_0000_SDO_ACTIVE_R_MSK,
@@ -730,10 +728,9 @@ static int adf4377_init(struct adf4377_state *st)
 					    ADF4377_0000_SDO_ACTIVE_SPI_4W) |
 				 FIELD_PREP(ADF4377_0000_SDO_ACTIVE_R_MSK,
 					    ADF4377_0000_SDO_ACTIVE_SPI_4W));
-	if (ret) {
-		dev_err(&spi->dev, "Failed to set 4-Wire Operation.\n");
-		return ret;
-	}
+	if (ret)
+		return dev_err_probe(&spi->dev, ret,
+				     "Failed to set 4-Wire Operation.\n");
 
 	st->clkin_freq = clk_get_rate(st->clkin);
 
@@ -747,10 +744,9 @@ static int adf4377_init(struct adf4377_state *st)
 			   FIELD_PREP(ADF4377_001A_PD_PFDCP_MSK, 0) |
 			   FIELD_PREP(ADF4377_001A_PD_CLKOUT1_MSK, 0) |
 			   FIELD_PREP(ADF4377_001A_PD_CLKOUT2_MSK, 0));
-	if (ret) {
-		dev_err(&spi->dev, "Failed to set power down registers.\n");
-		return ret;
-	}
+	if (ret)
+		return dev_err_probe(&spi->dev, ret,
+				     "Failed to set power down registers.\n");
 
 	/* Set Mux Output */
 	ret = regmap_update_bits(st->regmap, 0x1D,
-- 
2.43.0


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

* [PATCH 5/7] iio: adc: ade9000: use dev_err_probe in probe path
  2026-02-20 13:11 [PATCH 0/7] iio: use dev_err_probe in probe path for ADI drivers Antoniu Miclaus
                   ` (3 preceding siblings ...)
  2026-02-20 13:11 ` [PATCH 4/7] iio: frequency: adf4377: " Antoniu Miclaus
@ 2026-02-20 13:11 ` Antoniu Miclaus
  2026-02-22 17:01   ` Jonathan Cameron
  2026-02-20 13:11 ` [PATCH 6/7] iio: dac: ad7293: " Antoniu Miclaus
  2026-02-20 13:11 ` [PATCH 7/7] iio: filter: admv8818: " Antoniu Miclaus
  6 siblings, 1 reply; 14+ messages in thread
From: Antoniu Miclaus @ 2026-02-20 13:11 UTC (permalink / raw)
  To: Lars-Peter Clausen, Michael Hennerich, Antoniu Miclaus,
	Jonathan Cameron, David Lechner, Nuno Sá,
	Andy Shevchenko, linux-iio, linux-kernel

Replace dev_err() + return with dev_err_probe() in ade9000_reset(),
which is called during probe. This simplifies error handling.

Signed-off-by: Antoniu Miclaus <antoniu.miclaus@analog.com>
---
 drivers/iio/adc/ade9000.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/iio/adc/ade9000.c b/drivers/iio/adc/ade9000.c
index db085dc5e526..5dcc26a08970 100644
--- a/drivers/iio/adc/ade9000.c
+++ b/drivers/iio/adc/ade9000.c
@@ -1589,10 +1589,9 @@ static int ade9000_reset(struct ade9000_state *st)
 	/* Only wait for completion if IRQ1 is available to signal reset done */
 	if (fwnode_irq_get_byname(dev_fwnode(dev), "irq1") >= 0) {
 		if (!wait_for_completion_timeout(&st->reset_completion,
-						 msecs_to_jiffies(1000))) {
-			dev_err(dev, "Reset timeout after 1s\n");
-			return -ETIMEDOUT;
-		}
+						 msecs_to_jiffies(1000)))
+			return dev_err_probe(dev, -ETIMEDOUT,
+					     "Reset timeout after 1s\n");
 	}
 	/* If no IRQ available, reset is already complete after the 50ms delay above */
 
-- 
2.43.0


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

* [PATCH 6/7] iio: dac: ad7293: use dev_err_probe in probe path
  2026-02-20 13:11 [PATCH 0/7] iio: use dev_err_probe in probe path for ADI drivers Antoniu Miclaus
                   ` (4 preceding siblings ...)
  2026-02-20 13:11 ` [PATCH 5/7] iio: adc: ade9000: " Antoniu Miclaus
@ 2026-02-20 13:11 ` Antoniu Miclaus
  2026-02-20 13:11 ` [PATCH 7/7] iio: filter: admv8818: " Antoniu Miclaus
  6 siblings, 0 replies; 14+ messages in thread
From: Antoniu Miclaus @ 2026-02-20 13:11 UTC (permalink / raw)
  To: Antoniu Miclaus, Lars-Peter Clausen, Michael Hennerich,
	Jonathan Cameron, David Lechner, Nuno Sá,
	Andy Shevchenko, linux-iio, linux-kernel

Replace dev_err() + return with dev_err_probe() in ad7293_init(),
which is called during probe. This simplifies error handling.

Signed-off-by: Antoniu Miclaus <antoniu.miclaus@analog.com>
---
 drivers/iio/dac/ad7293.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/iio/dac/ad7293.c b/drivers/iio/dac/ad7293.c
index c3797e40cdd9..acee565d5bb7 100644
--- a/drivers/iio/dac/ad7293.c
+++ b/drivers/iio/dac/ad7293.c
@@ -821,10 +821,9 @@ static int ad7293_init(struct ad7293_state *st)
 	if (ret)
 		return ret;
 
-	if (chip_id != AD7293_CHIP_ID) {
-		dev_err(&spi->dev, "Invalid Chip ID.\n");
-		return -EINVAL;
-	}
+	if (chip_id != AD7293_CHIP_ID)
+		return dev_err_probe(&spi->dev, -EINVAL,
+				     "Invalid Chip ID.\n");
 
 	if (!st->vrefin_en)
 		return __ad7293_spi_update_bits(st, AD7293_REG_GENERAL,
-- 
2.43.0


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

* [PATCH 7/7] iio: filter: admv8818: use dev_err_probe in probe path
  2026-02-20 13:11 [PATCH 0/7] iio: use dev_err_probe in probe path for ADI drivers Antoniu Miclaus
                   ` (5 preceding siblings ...)
  2026-02-20 13:11 ` [PATCH 6/7] iio: dac: ad7293: " Antoniu Miclaus
@ 2026-02-20 13:11 ` Antoniu Miclaus
  6 siblings, 0 replies; 14+ messages in thread
From: Antoniu Miclaus @ 2026-02-20 13:11 UTC (permalink / raw)
  To: Antoniu Miclaus, Lars-Peter Clausen, Michael Hennerich,
	Jonathan Cameron, David Lechner, Nuno Sá,
	Andy Shevchenko, linux-iio, linux-kernel

Replace dev_err() + return with dev_err_probe() in admv8818_init(),
which is called during probe. Also use dev_err_probe() for the
regmap initialization error in the probe function. This simplifies
error handling.

Signed-off-by: Antoniu Miclaus <antoniu.miclaus@analog.com>
---
 drivers/iio/filter/admv8818.c | 38 ++++++++++++++++-------------------
 1 file changed, 17 insertions(+), 21 deletions(-)

diff --git a/drivers/iio/filter/admv8818.c b/drivers/iio/filter/admv8818.c
index 19f823446cda..d440f37811a2 100644
--- a/drivers/iio/filter/admv8818.c
+++ b/drivers/iio/filter/admv8818.c
@@ -662,36 +662,31 @@ static int admv8818_init(struct admv8818_state *st)
 
 	ret = regmap_write(st->regmap, ADMV8818_REG_SPI_CONFIG_A,
 			   ADMV8818_SOFTRESET_N_MSK | ADMV8818_SOFTRESET_MSK);
-	if (ret) {
-		dev_err(&spi->dev, "ADMV8818 Soft Reset failed.\n");
-		return ret;
-	}
+	if (ret)
+		return dev_err_probe(&spi->dev, ret,
+				     "ADMV8818 Soft Reset failed.\n");
 
 	ret = regmap_write(st->regmap, ADMV8818_REG_SPI_CONFIG_A,
 			   ADMV8818_SDOACTIVE_N_MSK | ADMV8818_SDOACTIVE_MSK);
-	if (ret) {
-		dev_err(&spi->dev, "ADMV8818 SDO Enable failed.\n");
-		return ret;
-	}
+	if (ret)
+		return dev_err_probe(&spi->dev, ret,
+				     "ADMV8818 SDO Enable failed.\n");
 
 	ret = regmap_read(st->regmap, ADMV8818_REG_CHIPTYPE, &chip_id);
-	if (ret) {
-		dev_err(&spi->dev, "ADMV8818 Chip ID read failed.\n");
-		return ret;
-	}
+	if (ret)
+		return dev_err_probe(&spi->dev, ret,
+				     "ADMV8818 Chip ID read failed.\n");
 
-	if (chip_id != 0x1) {
-		dev_err(&spi->dev, "ADMV8818 Invalid Chip ID.\n");
-		return -EINVAL;
-	}
+	if (chip_id != 0x1)
+		return dev_err_probe(&spi->dev, -EINVAL,
+				     "ADMV8818 Invalid Chip ID.\n");
 
 	ret = regmap_update_bits(st->regmap, ADMV8818_REG_SPI_CONFIG_B,
 				 ADMV8818_SINGLE_INSTRUCTION_MSK,
 				 FIELD_PREP(ADMV8818_SINGLE_INSTRUCTION_MSK, 1));
-	if (ret) {
-		dev_err(&spi->dev, "ADMV8818 Single Instruction failed.\n");
-		return ret;
-	}
+	if (ret)
+		return dev_err_probe(&spi->dev, ret,
+				     "ADMV8818 Single Instruction failed.\n");
 
 	if (st->clkin)
 		return admv8818_rfin_band_select(st);
@@ -766,7 +761,8 @@ static int admv8818_probe(struct spi_device *spi)
 
 	regmap = devm_regmap_init_spi(spi, &admv8818_regmap_config);
 	if (IS_ERR(regmap))
-		return PTR_ERR(regmap);
+		return dev_err_probe(&spi->dev, PTR_ERR(regmap),
+				     "failed to initialize regmap\n");
 
 	st = iio_priv(indio_dev);
 	st->regmap = regmap;
-- 
2.43.0


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

* Re: [PATCH 1/7] iio: frequency: adrf6780: use dev_err_probe in probe path
  2026-02-20 13:11 ` [PATCH 1/7] iio: frequency: adrf6780: use dev_err_probe in probe path Antoniu Miclaus
@ 2026-02-20 13:56   ` Andy Shevchenko
  2026-02-20 13:58     ` Andy Shevchenko
  2026-02-22 16:58     ` Jonathan Cameron
  0 siblings, 2 replies; 14+ messages in thread
From: Andy Shevchenko @ 2026-02-20 13:56 UTC (permalink / raw)
  To: Antoniu Miclaus
  Cc: Lars-Peter Clausen, Michael Hennerich, Jonathan Cameron,
	David Lechner, Nuno Sá,
	Andy Shevchenko, linux-iio, linux-kernel

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



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

* Re: [PATCH 1/7] iio: frequency: adrf6780: use dev_err_probe in probe path
  2026-02-20 13:56   ` Andy Shevchenko
@ 2026-02-20 13:58     ` Andy Shevchenko
  2026-02-20 14:41       ` Miclaus, Antoniu
  2026-02-22 16:58     ` Jonathan Cameron
  1 sibling, 1 reply; 14+ messages in thread
From: Andy Shevchenko @ 2026-02-20 13:58 UTC (permalink / raw)
  To: Antoniu Miclaus
  Cc: Lars-Peter Clausen, Michael Hennerich, Jonathan Cameron,
	David Lechner, Nuno Sá,
	Andy Shevchenko, linux-iio, linux-kernel

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



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

* RE: [PATCH 1/7] iio: frequency: adrf6780: use dev_err_probe in probe path
  2026-02-20 13:58     ` Andy Shevchenko
@ 2026-02-20 14:41       ` Miclaus, Antoniu
  2026-02-20 14:51         ` Andy Shevchenko
  0 siblings, 1 reply; 14+ messages in thread
From: Miclaus, Antoniu @ 2026-02-20 14:41 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Lars-Peter Clausen, Hennerich, Michael, Jonathan Cameron,
	David Lechner, Sa, Nuno, Andy Shevchenko, linux-iio,
	linux-kernel

> -----Original Message-----
> From: Andy Shevchenko <andriy.shevchenko@intel.com>
> Sent: Friday, February 20, 2026 3:59 PM
> To: Miclaus, Antoniu <Antoniu.Miclaus@analog.com>
> Cc: Lars-Peter Clausen <lars@metafoo.de>; Hennerich, Michael
> <Michael.Hennerich@analog.com>; Jonathan Cameron <jic23@kernel.org>;
> David Lechner <dlechner@baylibre.com>; Sa, Nuno <Nuno.Sa@analog.com>;
> Andy Shevchenko <andy@kernel.org>; linux-iio@vger.kernel.org; linux-
> kernel@vger.kernel.org
> Subject: Re: [PATCH 1/7] iio: frequency: adrf6780: use dev_err_probe in probe
> path
> 
> [External]
> 
> 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;

Definitely makes sense, but for me feels a bit out of the scope of this series. 
Want me to add the *dev = &spi->dev; here or in a separate patchseries?


> > 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
> 


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

* Re: [PATCH 1/7] iio: frequency: adrf6780: use dev_err_probe in probe path
  2026-02-20 14:41       ` Miclaus, Antoniu
@ 2026-02-20 14:51         ` Andy Shevchenko
  0 siblings, 0 replies; 14+ messages in thread
From: Andy Shevchenko @ 2026-02-20 14:51 UTC (permalink / raw)
  To: Miclaus, Antoniu
  Cc: Lars-Peter Clausen, Hennerich, Michael, Jonathan Cameron,
	David Lechner, Sa, Nuno, Andy Shevchenko, linux-iio,
	linux-kernel

On Fri, Feb 20, 2026 at 02:41:41PM +0000, Miclaus, Antoniu wrote:
> > From: Andy Shevchenko <andriy.shevchenko@intel.com>
> > Sent: Friday, February 20, 2026 3:59 PM
> > 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;
> 
> Definitely makes sense, but for me feels a bit out of the scope of this series. 

I would use it as ad-hoc material and wouldn't bother of a separate series.
Otherwise it will be a churn of modifying the same line twice.

That's why I consider this as a good compromise (we modify 3 cases here
if I'm not mistaken).

> Want me to add the *dev = &spi->dev; here or in a separate patchseries?
> 
> > > 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



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

* Re: [PATCH 1/7] iio: frequency: adrf6780: use dev_err_probe in probe path
  2026-02-20 13:56   ` Andy Shevchenko
  2026-02-20 13:58     ` Andy Shevchenko
@ 2026-02-22 16:58     ` Jonathan Cameron
  1 sibling, 0 replies; 14+ messages in thread
From: Jonathan Cameron @ 2026-02-22 16:58 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: Antoniu Miclaus, Lars-Peter Clausen, Michael Hennerich,
	David Lechner, Nuno Sá,
	Andy Shevchenko, linux-iio, linux-kernel

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.
> 


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

* Re: [PATCH 5/7] iio: adc: ade9000: use dev_err_probe in probe path
  2026-02-20 13:11 ` [PATCH 5/7] iio: adc: ade9000: " Antoniu Miclaus
@ 2026-02-22 17:01   ` Jonathan Cameron
  0 siblings, 0 replies; 14+ messages in thread
From: Jonathan Cameron @ 2026-02-22 17:01 UTC (permalink / raw)
  To: Antoniu Miclaus
  Cc: Lars-Peter Clausen, Michael Hennerich, David Lechner,
	Nuno Sá,
	Andy Shevchenko, linux-iio, linux-kernel

On Fri, 20 Feb 2026 15:11:43 +0200
Antoniu Miclaus <antoniu.miclaus@analog.com> wrote:

> Replace dev_err() + return with dev_err_probe() in ade9000_reset(),
> which is called during probe. This simplifies error handling.
> 
> Signed-off-by: Antoniu Miclaus <antoniu.miclaus@analog.com>
Applied this one, but tweaked title to include dev_err_probe()
(added the brackets)

I think Andy's feedback applies to all the rest of the series so I'll wait for
v2 for those.

Thanks,

Jonathan

> ---
>  drivers/iio/adc/ade9000.c | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/iio/adc/ade9000.c b/drivers/iio/adc/ade9000.c
> index db085dc5e526..5dcc26a08970 100644
> --- a/drivers/iio/adc/ade9000.c
> +++ b/drivers/iio/adc/ade9000.c
> @@ -1589,10 +1589,9 @@ static int ade9000_reset(struct ade9000_state *st)
>  	/* Only wait for completion if IRQ1 is available to signal reset done */
>  	if (fwnode_irq_get_byname(dev_fwnode(dev), "irq1") >= 0) {
>  		if (!wait_for_completion_timeout(&st->reset_completion,
> -						 msecs_to_jiffies(1000))) {
> -			dev_err(dev, "Reset timeout after 1s\n");
> -			return -ETIMEDOUT;
> -		}
> +						 msecs_to_jiffies(1000)))
> +			return dev_err_probe(dev, -ETIMEDOUT,
> +					     "Reset timeout after 1s\n");
>  	}
>  	/* If no IRQ available, reset is already complete after the 50ms delay above */
>  


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

end of thread, other threads:[~2026-02-22 17:01 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-02-20 13:11 [PATCH 0/7] iio: use dev_err_probe in probe path for ADI drivers Antoniu Miclaus
2026-02-20 13:11 ` [PATCH 1/7] iio: frequency: adrf6780: use dev_err_probe in probe path Antoniu Miclaus
2026-02-20 13:56   ` Andy Shevchenko
2026-02-20 13:58     ` Andy Shevchenko
2026-02-20 14:41       ` Miclaus, Antoniu
2026-02-20 14:51         ` Andy Shevchenko
2026-02-22 16:58     ` Jonathan Cameron
2026-02-20 13:11 ` [PATCH 2/7] iio: frequency: admv1014: " Antoniu Miclaus
2026-02-20 13:11 ` [PATCH 3/7] iio: frequency: admv1013: " Antoniu Miclaus
2026-02-20 13:11 ` [PATCH 4/7] iio: frequency: adf4377: " Antoniu Miclaus
2026-02-20 13:11 ` [PATCH 5/7] iio: adc: ade9000: " Antoniu Miclaus
2026-02-22 17:01   ` Jonathan Cameron
2026-02-20 13:11 ` [PATCH 6/7] iio: dac: ad7293: " Antoniu Miclaus
2026-02-20 13:11 ` [PATCH 7/7] iio: filter: admv8818: " Antoniu Miclaus

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

Powered by JetHome