[PATCH] iio: adc: at91_adc: return proper error code from at91_ts_sample()

Antoniu Miclaus posted 1 patch 1 week, 1 day ago
drivers/iio/adc/at91_adc.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
[PATCH] iio: adc: at91_adc: return proper error code from at91_ts_sample()
Posted by Antoniu Miclaus 1 week, 1 day ago
Return -EIO instead of -1 when xscale or yscale read from hardware
registers is zero. Using -EIO since this indicates unexpected data
from the hardware rather than an invalid argument.

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

diff --git a/drivers/iio/adc/at91_adc.c b/drivers/iio/adc/at91_adc.c
index 920dd9ffd27a..5e8719d5ac01 100644
--- a/drivers/iio/adc/at91_adc.c
+++ b/drivers/iio/adc/at91_adc.c
@@ -323,7 +323,7 @@ static int at91_ts_sample(struct iio_dev *idev)
 	xscale = (reg >> 16) & xyz_mask;
 	if (xscale == 0) {
 		dev_err(&idev->dev, "Error: xscale == 0!\n");
-		return -1;
+		return -EIO;
 	}
 	x /= xscale;
 
@@ -334,7 +334,7 @@ static int at91_ts_sample(struct iio_dev *idev)
 	yscale = (reg >> 16) & xyz_mask;
 	if (yscale == 0) {
 		dev_err(&idev->dev, "Error: yscale == 0!\n");
-		return -1;
+		return -EIO;
 	}
 	y /= yscale;
 
-- 
2.43.0
Re: [PATCH] iio: adc: at91_adc: return proper error code from at91_ts_sample()
Posted by Jonathan Cameron 1 week ago
On Fri, 30 Jan 2026 15:51:22 +0200
Antoniu Miclaus <antoniu.miclaus@analog.com> wrote:

> Return -EIO instead of -1 when xscale or yscale read from hardware
> registers is zero. Using -EIO since this indicates unexpected data
> from the hardware rather than an invalid argument.
> 
> Signed-off-by: Antoniu Miclaus <antoniu.miclaus@analog.com>
This is a little pointless as nothing actually reads the return value.
It might be better to either make that clear by changing the return type
or figure out if it actually is useful for the caller to know this failed.

On it's own this patch gets us very little even though it looks very
sensible in isolation!

Thanks,

Jonathan

> ---
>  drivers/iio/adc/at91_adc.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/iio/adc/at91_adc.c b/drivers/iio/adc/at91_adc.c
> index 920dd9ffd27a..5e8719d5ac01 100644
> --- a/drivers/iio/adc/at91_adc.c
> +++ b/drivers/iio/adc/at91_adc.c
> @@ -323,7 +323,7 @@ static int at91_ts_sample(struct iio_dev *idev)
>  	xscale = (reg >> 16) & xyz_mask;
>  	if (xscale == 0) {
>  		dev_err(&idev->dev, "Error: xscale == 0!\n");
> -		return -1;
> +		return -EIO;
>  	}
>  	x /= xscale;
>  
> @@ -334,7 +334,7 @@ static int at91_ts_sample(struct iio_dev *idev)
>  	yscale = (reg >> 16) & xyz_mask;
>  	if (yscale == 0) {
>  		dev_err(&idev->dev, "Error: yscale == 0!\n");
> -		return -1;
> +		return -EIO;
>  	}
>  	y /= yscale;
>