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