public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] iio: filter: admv8818: Bug fix and other improvements
@ 2026-02-27  6:14 Ethan Tidmore
  2026-02-27  6:14 ` [PATCH 1/3] iio: filter: admv8818: Add missing error code Ethan Tidmore
                   ` (2 more replies)
  0 siblings, 3 replies; 14+ messages in thread
From: Ethan Tidmore @ 2026-02-27  6:14 UTC (permalink / raw)
  To: Antoniu Miclaus, Jonathan Cameron, Lars-Peter Clausen,
	Michael Hennerich
  Cc: David Lechner, Nuno Sá, Andy Shevchenko, linux-iio,
	linux-kernel, Ethan Tidmore

Fix a missing error code problem with Smatch, transition driver to
use guard(), and resolve all checkpatch warnings.


Ethan Tidmore (3):
  iio: filter: admv8818: Add missing error code
  iio: filter: admv8818: Simplify locking with guard()
  iio: filter: admv8818: Minor cleanups

 drivers/iio/filter/admv8818.c | 69 ++++++++++++-----------------------
 1 file changed, 24 insertions(+), 45 deletions(-)

-- 
2.53.0


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

* [PATCH 1/3] iio: filter: admv8818: Add missing error code
  2026-02-27  6:14 [PATCH 0/3] iio: filter: admv8818: Bug fix and other improvements Ethan Tidmore
@ 2026-02-27  6:14 ` Ethan Tidmore
  2026-02-27  6:42   ` Ethan Tidmore
                     ` (2 more replies)
  2026-02-27  6:14 ` [PATCH 2/3] iio: filter: admv8818: Simplify locking with guard() Ethan Tidmore
  2026-02-27  6:14 ` [PATCH 3/3] iio: filter: admv8818: Minor cleanups Ethan Tidmore
  2 siblings, 3 replies; 14+ messages in thread
From: Ethan Tidmore @ 2026-02-27  6:14 UTC (permalink / raw)
  To: Antoniu Miclaus, Jonathan Cameron, Lars-Peter Clausen,
	Michael Hennerich
  Cc: David Lechner, Nuno Sá, Andy Shevchenko, linux-iio,
	linux-kernel, Ethan Tidmore

If the macro FIELD_GET() returns an error code the function returns
with 0 because ret was just confirmed to be 0 a few lines above.

Add error code.

Detected by Smatch:
drivers/iio/filter/admv8818.c:335 __admv8818_read_hpf_freq() warn:
missing error code? 'ret'

drivers/iio/filter/admv8818.c:376 __admv8818_read_lpf_freq()
warn: missing error code? 'ret'

Fixes: f34fe888ad054 ("iio:filter:admv8818: add support for ADMV8818")
Signed-off-by: Ethan Tidmore <ethantidmore06@gmail.com>
---
 drivers/iio/filter/admv8818.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/iio/filter/admv8818.c b/drivers/iio/filter/admv8818.c
index e494fd33911b..4d5e7a9d806a 100644
--- a/drivers/iio/filter/admv8818.c
+++ b/drivers/iio/filter/admv8818.c
@@ -332,7 +332,7 @@ static int __admv8818_read_hpf_freq(struct admv8818_state *st, u64 *hpf_freq)
 	hpf_band = FIELD_GET(ADMV8818_SW_IN_WR0_MSK, data);
 	if (!hpf_band || hpf_band > 4) {
 		*hpf_freq = 0;
-		return ret;
+		return -EINVAL;
 	}
 
 	ret = regmap_read(st->regmap, ADMV8818_REG_WR0_FILTER, &data);
@@ -373,7 +373,7 @@ static int __admv8818_read_lpf_freq(struct admv8818_state *st, u64 *lpf_freq)
 	lpf_band = FIELD_GET(ADMV8818_SW_OUT_WR0_MSK, data);
 	if (!lpf_band || lpf_band > 4) {
 		*lpf_freq = 0;
-		return ret;
+		return -EINVAL;
 	}
 
 	ret = regmap_read(st->regmap, ADMV8818_REG_WR0_FILTER, &data);
-- 
2.53.0


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

* [PATCH 2/3] iio: filter: admv8818: Simplify locking with guard()
  2026-02-27  6:14 [PATCH 0/3] iio: filter: admv8818: Bug fix and other improvements Ethan Tidmore
  2026-02-27  6:14 ` [PATCH 1/3] iio: filter: admv8818: Add missing error code Ethan Tidmore
@ 2026-02-27  6:14 ` Ethan Tidmore
  2026-02-27  7:08   ` Andy Shevchenko
  2026-02-27 16:08   ` David Lechner
  2026-02-27  6:14 ` [PATCH 3/3] iio: filter: admv8818: Minor cleanups Ethan Tidmore
  2 siblings, 2 replies; 14+ messages in thread
From: Ethan Tidmore @ 2026-02-27  6:14 UTC (permalink / raw)
  To: Antoniu Miclaus, Jonathan Cameron, Lars-Peter Clausen,
	Michael Hennerich
  Cc: David Lechner, Nuno Sá, Andy Shevchenko, linux-iio,
	linux-kernel, Ethan Tidmore

Use guard() instead of manual locking to simplify code.

Signed-off-by: Ethan Tidmore <ethantidmore06@gmail.com>
---
 drivers/iio/filter/admv8818.c | 59 ++++++++++++-----------------------
 1 file changed, 20 insertions(+), 39 deletions(-)

diff --git a/drivers/iio/filter/admv8818.c b/drivers/iio/filter/admv8818.c
index 4d5e7a9d806a..2d12700d717f 100644
--- a/drivers/iio/filter/admv8818.c
+++ b/drivers/iio/filter/admv8818.c
@@ -7,6 +7,7 @@
 
 #include <linux/bitfield.h>
 #include <linux/bits.h>
+#include <linux/cleanup.h>
 #include <linux/clk.h>
 #include <linux/device.h>
 #include <linux/iio/iio.h>
@@ -205,13 +206,8 @@ static int __admv8818_hpf_select(struct admv8818_state *st, u64 freq)
 
 static int admv8818_hpf_select(struct admv8818_state *st, u64 freq)
 {
-	int ret;
-
-	mutex_lock(&st->lock);
-	ret = __admv8818_hpf_select(st, freq);
-	mutex_unlock(&st->lock);
-
-	return ret;
+	guard(mutex)(&st->lock);
+	return __admv8818_hpf_select(st, freq);
 }
 
 static int __admv8818_lpf_select(struct admv8818_state *st, u64 freq)
@@ -281,13 +277,8 @@ static int __admv8818_lpf_select(struct admv8818_state *st, u64 freq)
 
 static int admv8818_lpf_select(struct admv8818_state *st, u64 freq)
 {
-	int ret;
-
-	mutex_lock(&st->lock);
-	ret = __admv8818_lpf_select(st, freq);
-	mutex_unlock(&st->lock);
-
-	return ret;
+	guard(mutex)(&st->lock);
+	return __admv8818_lpf_select(st, freq);
 }
 
 static int admv8818_rfin_band_select(struct admv8818_state *st)
@@ -308,16 +299,17 @@ static int admv8818_rfin_band_select(struct admv8818_state *st)
 	if (lpf_corner_target < st->cf_hz)
 		lpf_corner_target = U64_MAX;
 
-	mutex_lock(&st->lock);
+	guard(mutex)(&st->lock);
 
 	ret = __admv8818_hpf_select(st, hpf_corner_target);
 	if (ret)
-		goto exit;
+		return ret;
 
 	ret = __admv8818_lpf_select(st, lpf_corner_target);
-exit:
-	mutex_unlock(&st->lock);
-	return ret;
+	if (ret)
+		return ret;
+
+	return 0;
 }
 
 static int __admv8818_read_hpf_freq(struct admv8818_state *st, u64 *hpf_freq)
@@ -352,13 +344,8 @@ static int __admv8818_read_hpf_freq(struct admv8818_state *st, u64 *hpf_freq)
 
 static int admv8818_read_hpf_freq(struct admv8818_state *st, u64 *hpf_freq)
 {
-	int ret;
-
-	mutex_lock(&st->lock);
-	ret = __admv8818_read_hpf_freq(st, hpf_freq);
-	mutex_unlock(&st->lock);
-
-	return ret;
+	guard(mutex)(&st->lock);
+	return __admv8818_read_hpf_freq(st, hpf_freq);
 }
 
 static int __admv8818_read_lpf_freq(struct admv8818_state *st, u64 *lpf_freq)
@@ -393,13 +380,8 @@ static int __admv8818_read_lpf_freq(struct admv8818_state *st, u64 *lpf_freq)
 
 static int admv8818_read_lpf_freq(struct admv8818_state *st, u64 *lpf_freq)
 {
-	int ret;
-
-	mutex_lock(&st->lock);
-	ret = __admv8818_read_lpf_freq(st, lpf_freq);
-	mutex_unlock(&st->lock);
-
-	return ret;
+	guard(mutex)(&st->lock);
+	return __admv8818_read_lpf_freq(st, lpf_freq);
 }
 
 static int admv8818_write_raw_get_fmt(struct iio_dev *indio_dev,
@@ -485,7 +467,7 @@ static int admv8818_filter_bypass(struct admv8818_state *st)
 {
 	int ret;
 
-	mutex_lock(&st->lock);
+	guard(mutex)(&st->lock);
 
 	ret = regmap_update_bits(st->regmap, ADMV8818_REG_WR0_SW,
 				 ADMV8818_SW_IN_SET_WR0_MSK |
@@ -497,18 +479,17 @@ static int admv8818_filter_bypass(struct admv8818_state *st)
 				 FIELD_PREP(ADMV8818_SW_OUT_SET_WR0_MSK, 1) |
 				 FIELD_PREP(ADMV8818_SW_OUT_WR0_MSK, 0));
 	if (ret)
-		goto exit;
+		return ret;
 
 	ret = regmap_update_bits(st->regmap, ADMV8818_REG_WR0_FILTER,
 				 ADMV8818_HPF_WR0_MSK |
 				 ADMV8818_LPF_WR0_MSK,
 				 FIELD_PREP(ADMV8818_HPF_WR0_MSK, 0) |
 				 FIELD_PREP(ADMV8818_LPF_WR0_MSK, 0));
+	if (ret)
+		return ret;
 
-exit:
-	mutex_unlock(&st->lock);
-
-	return ret;
+	return 0;
 }
 
 static int admv8818_get_mode(struct iio_dev *indio_dev,
-- 
2.53.0


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

* [PATCH 3/3] iio: filter: admv8818: Minor cleanups
  2026-02-27  6:14 [PATCH 0/3] iio: filter: admv8818: Bug fix and other improvements Ethan Tidmore
  2026-02-27  6:14 ` [PATCH 1/3] iio: filter: admv8818: Add missing error code Ethan Tidmore
  2026-02-27  6:14 ` [PATCH 2/3] iio: filter: admv8818: Simplify locking with guard() Ethan Tidmore
@ 2026-02-27  6:14 ` Ethan Tidmore
  2026-02-27  7:18   ` Andy Shevchenko
  2 siblings, 1 reply; 14+ messages in thread
From: Ethan Tidmore @ 2026-02-27  6:14 UTC (permalink / raw)
  To: Antoniu Miclaus, Jonathan Cameron, Lars-Peter Clausen,
	Michael Hennerich
  Cc: David Lechner, Nuno Sá, Andy Shevchenko, linux-iio,
	linux-kernel, Ethan Tidmore

Resolve every checkpatch error in the driver.

Signed-off-by: Ethan Tidmore <ethantidmore06@gmail.com>
---
 drivers/iio/filter/admv8818.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/drivers/iio/filter/admv8818.c b/drivers/iio/filter/admv8818.c
index 2d12700d717f..1af263007322 100644
--- a/drivers/iio/filter/admv8818.c
+++ b/drivers/iio/filter/admv8818.c
@@ -240,7 +240,6 @@ static int __admv8818_lpf_select(struct admv8818_state *st, u64 freq)
 		freq_step = div_u64(freq_step, ADMV8818_NUM_STATES - 1);
 
 		for (state = ADMV8818_STATE_MAX; state >= ADMV8818_STATE_MIN; --state) {
-
 			freq_corner = freq_range_lpf[band][ADMV8818_BAND_CORNER_LOW] +
 				      state * freq_step;
 
@@ -385,8 +384,8 @@ static int admv8818_read_lpf_freq(struct admv8818_state *st, u64 *lpf_freq)
 }
 
 static int admv8818_write_raw_get_fmt(struct iio_dev *indio_dev,
-								struct iio_chan_spec const *chan,
-								long mask)
+				      struct iio_chan_spec const *chan,
+				      long mask)
 {
 	switch (mask) {
 	case IIO_CHAN_INFO_LOW_PASS_FILTER_3DB_FREQUENCY:
@@ -722,7 +721,6 @@ static int admv8818_read_properties(struct admv8818_state *st)
 	else
 		return ret;
 
-
 	ret = device_property_read_u32(&spi->dev, "adi,hpf-margin-mhz", &mhz);
 	if (ret == 0)
 		st->hpf_margin_hz = (u64)mhz * HZ_PER_MHZ;
-- 
2.53.0


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

* Re: [PATCH 1/3] iio: filter: admv8818: Add missing error code
  2026-02-27  6:14 ` [PATCH 1/3] iio: filter: admv8818: Add missing error code Ethan Tidmore
@ 2026-02-27  6:42   ` Ethan Tidmore
  2026-02-27  7:06     ` Andy Shevchenko
  2026-02-27  7:04   ` Andy Shevchenko
  2026-02-27 16:02   ` David Lechner
  2 siblings, 1 reply; 14+ messages in thread
From: Ethan Tidmore @ 2026-02-27  6:42 UTC (permalink / raw)
  To: Ethan Tidmore, Antoniu Miclaus, Jonathan Cameron,
	Lars-Peter Clausen, Michael Hennerich
  Cc: David Lechner, Nuno Sá, Andy Shevchenko, linux-iio,
	linux-kernel

On Fri Feb 27, 2026 at 12:14 AM CST, Ethan Tidmore wrote:
> If the macro FIELD_GET() returns an error code the function returns
> with 0 because ret was just confirmed to be 0 a few lines above.
>
> Add error code.
>
> Detected by Smatch:
> drivers/iio/filter/admv8818.c:335 __admv8818_read_hpf_freq() warn:
> missing error code? 'ret'
>
> drivers/iio/filter/admv8818.c:376 __admv8818_read_lpf_freq()
> warn: missing error code? 'ret'
>
> Fixes: f34fe888ad054 ("iio:filter:admv8818: add support for ADMV8818")
> Signed-off-by: Ethan Tidmore <ethantidmore06@gmail.com>
> ---

Just realized I should have used -EIO for the error code. Will wait
however on reviews before v2.

Thanks,

ET

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

* Re: [PATCH 1/3] iio: filter: admv8818: Add missing error code
  2026-02-27  6:14 ` [PATCH 1/3] iio: filter: admv8818: Add missing error code Ethan Tidmore
  2026-02-27  6:42   ` Ethan Tidmore
@ 2026-02-27  7:04   ` Andy Shevchenko
  2026-02-27 16:02   ` David Lechner
  2 siblings, 0 replies; 14+ messages in thread
From: Andy Shevchenko @ 2026-02-27  7:04 UTC (permalink / raw)
  To: Ethan Tidmore
  Cc: Antoniu Miclaus, Jonathan Cameron, Lars-Peter Clausen,
	Michael Hennerich, David Lechner, Nuno Sá, Andy Shevchenko,
	linux-iio, linux-kernel

On Fri, Feb 27, 2026 at 12:14:22AM -0600, Ethan Tidmore wrote:
> If the macro FIELD_GET() returns an error code the function returns
> with 0 because ret was just confirmed to be 0 a few lines above.
> 
> Add error code.
> 
> Detected by Smatch:
> drivers/iio/filter/admv8818.c:335 __admv8818_read_hpf_freq() warn:
> missing error code? 'ret'
> 
> drivers/iio/filter/admv8818.c:376 __admv8818_read_lpf_freq()
> warn: missing error code? 'ret'

...

> @@ -332,7 +332,7 @@ static int __admv8818_read_hpf_freq(struct admv8818_state *st, u64 *hpf_freq)
>  	hpf_band = FIELD_GET(ADMV8818_SW_IN_WR0_MSK, data);
>  	if (!hpf_band || hpf_band > 4) {
>  		*hpf_freq = 0;
> -		return ret;
> +		return -EINVAL;

Looking at the nature of the check I would rather change the condition
to use in_range() and respectively return -ERANGE.

>  	}

...

>  	lpf_band = FIELD_GET(ADMV8818_SW_OUT_WR0_MSK, data);
>  	if (!lpf_band || lpf_band > 4) {
>  		*lpf_freq = 0;
> -		return ret;
> +		return -EINVAL;
>  	}

Ditto.

-- 
With Best Regards,
Andy Shevchenko



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

* Re: [PATCH 1/3] iio: filter: admv8818: Add missing error code
  2026-02-27  6:42   ` Ethan Tidmore
@ 2026-02-27  7:06     ` Andy Shevchenko
  2026-02-27 16:01       ` David Lechner
  0 siblings, 1 reply; 14+ messages in thread
From: Andy Shevchenko @ 2026-02-27  7:06 UTC (permalink / raw)
  To: Ethan Tidmore
  Cc: Antoniu Miclaus, Jonathan Cameron, Lars-Peter Clausen,
	Michael Hennerich, David Lechner, Nuno Sá, Andy Shevchenko,
	linux-iio, linux-kernel

On Fri, Feb 27, 2026 at 12:42:11AM -0600, Ethan Tidmore wrote:
> On Fri Feb 27, 2026 at 12:14 AM CST, Ethan Tidmore wrote:

...

> Just realized I should have used -EIO for the error code. Will wait
> however on reviews before v2.

Why -EIO? Is it used in the same situation in other cases in this driver?

-- 
With Best Regards,
Andy Shevchenko



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

* Re: [PATCH 2/3] iio: filter: admv8818: Simplify locking with guard()
  2026-02-27  6:14 ` [PATCH 2/3] iio: filter: admv8818: Simplify locking with guard() Ethan Tidmore
@ 2026-02-27  7:08   ` Andy Shevchenko
  2026-02-27 16:08   ` David Lechner
  1 sibling, 0 replies; 14+ messages in thread
From: Andy Shevchenko @ 2026-02-27  7:08 UTC (permalink / raw)
  To: Ethan Tidmore
  Cc: Antoniu Miclaus, Jonathan Cameron, Lars-Peter Clausen,
	Michael Hennerich, David Lechner, Nuno Sá, Andy Shevchenko,
	linux-iio, linux-kernel

On Fri, Feb 27, 2026 at 12:14:23AM -0600, Ethan Tidmore wrote:
> Use guard() instead of manual locking to simplify code.

...

>  	ret = __admv8818_lpf_select(st, lpf_corner_target);
> -exit:
> -	mutex_unlock(&st->lock);
> -	return ret;
> +	if (ret)
> +		return ret;
> +
> +	return 0;

Why not

	return __admv8818_lpf_select(...);

?

...

>  	ret = regmap_update_bits(st->regmap, ADMV8818_REG_WR0_FILTER,
>  				 ADMV8818_HPF_WR0_MSK |
>  				 ADMV8818_LPF_WR0_MSK,
>  				 FIELD_PREP(ADMV8818_HPF_WR0_MSK, 0) |
>  				 FIELD_PREP(ADMV8818_LPF_WR0_MSK, 0));
> +	if (ret)
> +		return ret;
>  
> -exit:
> -	mutex_unlock(&st->lock);
> -
> -	return ret;
> +	return 0;

In the similar way?

-- 
With Best Regards,
Andy Shevchenko



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

* Re: [PATCH 3/3] iio: filter: admv8818: Minor cleanups
  2026-02-27  6:14 ` [PATCH 3/3] iio: filter: admv8818: Minor cleanups Ethan Tidmore
@ 2026-02-27  7:18   ` Andy Shevchenko
  0 siblings, 0 replies; 14+ messages in thread
From: Andy Shevchenko @ 2026-02-27  7:18 UTC (permalink / raw)
  To: Ethan Tidmore
  Cc: Antoniu Miclaus, Jonathan Cameron, Lars-Peter Clausen,
	Michael Hennerich, David Lechner, Nuno Sá, Andy Shevchenko,
	linux-iio, linux-kernel

On Fri, Feb 27, 2026 at 12:14:24AM -0600, Ethan Tidmore wrote:
> Resolve every checkpatch error in the driver.

Poorly written commit message and Subject. Please, be more explicit:

Ex.:

  iio: filter: ...: Fix indentation issues in a couple of places

  Fix indentation issue of the parameters in admv8818_write_raw_get_fmt()
  and remove extra blank lines elsewhere.

Read this: https://chris.beams.io/git-commit

-- 
With Best Regards,
Andy Shevchenko



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

* Re: [PATCH 1/3] iio: filter: admv8818: Add missing error code
  2026-02-27  7:06     ` Andy Shevchenko
@ 2026-02-27 16:01       ` David Lechner
  2026-02-27 16:06         ` Andy Shevchenko
  0 siblings, 1 reply; 14+ messages in thread
From: David Lechner @ 2026-02-27 16:01 UTC (permalink / raw)
  To: Andy Shevchenko, Ethan Tidmore
  Cc: Antoniu Miclaus, Jonathan Cameron, Lars-Peter Clausen,
	Michael Hennerich, Nuno Sá, Andy Shevchenko, linux-iio,
	linux-kernel

On 2/27/26 1:06 AM, Andy Shevchenko wrote:
> On Fri, Feb 27, 2026 at 12:42:11AM -0600, Ethan Tidmore wrote:
>> On Fri Feb 27, 2026 at 12:14 AM CST, Ethan Tidmore wrote:
> 
> ...
> 
>> Just realized I should have used -EIO for the error code. Will wait
>> however on reviews before v2.
> 
> Why -EIO? Is it used in the same situation in other cases in this driver?
> 

I think EIO makes sense here. We are reading from a chip. And if the
values we read aren't one of the expected values, the mostly likely
reason is the chip is malfunctioning or noise on the wires.

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

* Re: [PATCH 1/3] iio: filter: admv8818: Add missing error code
  2026-02-27  6:14 ` [PATCH 1/3] iio: filter: admv8818: Add missing error code Ethan Tidmore
  2026-02-27  6:42   ` Ethan Tidmore
  2026-02-27  7:04   ` Andy Shevchenko
@ 2026-02-27 16:02   ` David Lechner
  2 siblings, 0 replies; 14+ messages in thread
From: David Lechner @ 2026-02-27 16:02 UTC (permalink / raw)
  To: Ethan Tidmore, Antoniu Miclaus, Jonathan Cameron,
	Lars-Peter Clausen, Michael Hennerich
  Cc: Nuno Sá, Andy Shevchenko, linux-iio, linux-kernel

On 2/27/26 12:14 AM, Ethan Tidmore wrote:
> If the macro FIELD_GET() returns an error code the function returns
> with 0 because ret was just confirmed to be 0 a few lines above.
> 
> Add error code.
> 
> Detected by Smatch:
> drivers/iio/filter/admv8818.c:335 __admv8818_read_hpf_freq() warn:
> missing error code? 'ret'
> 
> drivers/iio/filter/admv8818.c:376 __admv8818_read_lpf_freq()
> warn: missing error code? 'ret'
> 
> Fixes: f34fe888ad054 ("iio:filter:admv8818: add support for ADMV8818")
> Signed-off-by: Ethan Tidmore <ethantidmore06@gmail.com>
> ---
>  drivers/iio/filter/admv8818.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/iio/filter/admv8818.c b/drivers/iio/filter/admv8818.c
> index e494fd33911b..4d5e7a9d806a 100644
> --- a/drivers/iio/filter/admv8818.c
> +++ b/drivers/iio/filter/admv8818.c
> @@ -332,7 +332,7 @@ static int __admv8818_read_hpf_freq(struct admv8818_state *st, u64 *hpf_freq)
>  	hpf_band = FIELD_GET(ADMV8818_SW_IN_WR0_MSK, data);
>  	if (!hpf_band || hpf_band > 4) {
>  		*hpf_freq = 0;
> -		return ret;
> +		return -EINVAL;
>  	}
>  
>  	ret = regmap_read(st->regmap, ADMV8818_REG_WR0_FILTER, &data);
> @@ -373,7 +373,7 @@ static int __admv8818_read_lpf_freq(struct admv8818_state *st, u64 *lpf_freq)
>  	lpf_band = FIELD_GET(ADMV8818_SW_OUT_WR0_MSK, data);
>  	if (!lpf_band || lpf_band > 4) {
>  		*lpf_freq = 0;
> -		return ret;
> +		return -EINVAL;
>  	}
>  
>  	ret = regmap_read(st->regmap, ADMV8818_REG_WR0_FILTER, &data);

Probably for a separate patch since this is considered a fix...

The returns at the end of these functions should be changed to
return 0. It is the only possible value ret can have at that point.

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

* Re: [PATCH 1/3] iio: filter: admv8818: Add missing error code
  2026-02-27 16:01       ` David Lechner
@ 2026-02-27 16:06         ` Andy Shevchenko
  0 siblings, 0 replies; 14+ messages in thread
From: Andy Shevchenko @ 2026-02-27 16:06 UTC (permalink / raw)
  To: David Lechner
  Cc: Ethan Tidmore, Antoniu Miclaus, Jonathan Cameron,
	Lars-Peter Clausen, Michael Hennerich, Nuno Sá,
	Andy Shevchenko, linux-iio, linux-kernel

On Fri, Feb 27, 2026 at 10:01:25AM -0600, David Lechner wrote:
> On 2/27/26 1:06 AM, Andy Shevchenko wrote:
> > On Fri, Feb 27, 2026 at 12:42:11AM -0600, Ethan Tidmore wrote:
> >> On Fri Feb 27, 2026 at 12:14 AM CST, Ethan Tidmore wrote:

...

> >> Just realized I should have used -EIO for the error code. Will wait
> >> however on reviews before v2.
> > 
> > Why -EIO? Is it used in the same situation in other cases in this driver?
> 
> I think EIO makes sense here. We are reading from a chip. And if the
> values we read aren't one of the expected values, the mostly likely
> reason is the chip is malfunctioning or noise on the wires.

Makes sense, but needs to be properly spoken in the commit message.

-- 
With Best Regards,
Andy Shevchenko



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

* Re: [PATCH 2/3] iio: filter: admv8818: Simplify locking with guard()
  2026-02-27  6:14 ` [PATCH 2/3] iio: filter: admv8818: Simplify locking with guard() Ethan Tidmore
  2026-02-27  7:08   ` Andy Shevchenko
@ 2026-02-27 16:08   ` David Lechner
  2026-03-02 22:34     ` Ethan Tidmore
  1 sibling, 1 reply; 14+ messages in thread
From: David Lechner @ 2026-02-27 16:08 UTC (permalink / raw)
  To: Ethan Tidmore, Antoniu Miclaus, Jonathan Cameron,
	Lars-Peter Clausen, Michael Hennerich
  Cc: Nuno Sá, Andy Shevchenko, linux-iio, linux-kernel

On 2/27/26 12:14 AM, Ethan Tidmore wrote:
> Use guard() instead of manual locking to simplify code.
> 
> Signed-off-by: Ethan Tidmore <ethantidmore06@gmail.com>
> ---


> @@ -352,13 +344,8 @@ static int __admv8818_read_hpf_freq(struct admv8818_state *st, u64 *hpf_freq)
>  
>  static int admv8818_read_hpf_freq(struct admv8818_state *st, u64 *hpf_freq)
>  {
> -	int ret;
> -
> -	mutex_lock(&st->lock);
> -	ret = __admv8818_read_hpf_freq(st, hpf_freq);
> -	mutex_unlock(&st->lock);
> -
> -	return ret;
> +	guard(mutex)(&st->lock);
> +	return __admv8818_read_hpf_freq(st, hpf_freq);
>  }

admv8818_read_hpf_freq() is the only caller of __admv8818_read_hpf_freq()
so we can drop the wrapper, move the guard to __admv8818_read_hpf_freq()
and rename it to admv8818_read_hpf_freq().

I didn't check all functions, but might be others places where we can do
this as well.


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

* Re: [PATCH 2/3] iio: filter: admv8818: Simplify locking with guard()
  2026-02-27 16:08   ` David Lechner
@ 2026-03-02 22:34     ` Ethan Tidmore
  0 siblings, 0 replies; 14+ messages in thread
From: Ethan Tidmore @ 2026-03-02 22:34 UTC (permalink / raw)
  To: David Lechner, Ethan Tidmore, Antoniu Miclaus, Jonathan Cameron,
	Lars-Peter Clausen, Michael Hennerich
  Cc: Nuno Sá, Andy Shevchenko, linux-iio, linux-kernel

On Fri Feb 27, 2026 at 10:08 AM CST, David Lechner wrote:
> On 2/27/26 12:14 AM, Ethan Tidmore wrote:
>> Use guard() instead of manual locking to simplify code.
>> 
>> Signed-off-by: Ethan Tidmore <ethantidmore06@gmail.com>
>> ---
>
>
>> @@ -352,13 +344,8 @@ static int __admv8818_read_hpf_freq(struct admv8818_state *st, u64 *hpf_freq)
>>  
>>  static int admv8818_read_hpf_freq(struct admv8818_state *st, u64 *hpf_freq)
>>  {
>> -	int ret;
>> -
>> -	mutex_lock(&st->lock);
>> -	ret = __admv8818_read_hpf_freq(st, hpf_freq);
>> -	mutex_unlock(&st->lock);
>> -
>> -	return ret;
>> +	guard(mutex)(&st->lock);
>> +	return __admv8818_read_hpf_freq(st, hpf_freq);
>>  }
>
> admv8818_read_hpf_freq() is the only caller of __admv8818_read_hpf_freq()
> so we can drop the wrapper, move the guard to __admv8818_read_hpf_freq()
> and rename it to admv8818_read_hpf_freq().
>
> I didn't check all functions, but might be others places where we can do
> this as well.

So this can be easily done with a few wrappers but these two functions
have this odd scenario:

	guard(mutex)(&st->lock);

	ret = __admv8818_hpf_select(st, hpf_corner_target);
	if (ret)
		return ret;

	return __admv8818_lpf_select(st, lpf_corner_target);

Where if I deleted that guard() and just made those hold the lock
separately this would be a behaviour change. Wondering if there was a
nice way to get around this?

Thanks,

ET

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

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

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-27  6:14 [PATCH 0/3] iio: filter: admv8818: Bug fix and other improvements Ethan Tidmore
2026-02-27  6:14 ` [PATCH 1/3] iio: filter: admv8818: Add missing error code Ethan Tidmore
2026-02-27  6:42   ` Ethan Tidmore
2026-02-27  7:06     ` Andy Shevchenko
2026-02-27 16:01       ` David Lechner
2026-02-27 16:06         ` Andy Shevchenko
2026-02-27  7:04   ` Andy Shevchenko
2026-02-27 16:02   ` David Lechner
2026-02-27  6:14 ` [PATCH 2/3] iio: filter: admv8818: Simplify locking with guard() Ethan Tidmore
2026-02-27  7:08   ` Andy Shevchenko
2026-02-27 16:08   ` David Lechner
2026-03-02 22:34     ` Ethan Tidmore
2026-02-27  6:14 ` [PATCH 3/3] iio: filter: admv8818: Minor cleanups Ethan Tidmore
2026-02-27  7:18   ` Andy Shevchenko

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