Re: [PATCH] hwmon: (ads7871) Fix incorrect error code in voltage_show

From: Guenter Roeck

Date: Sat Mar 07 2026 - 05:47:58 EST


Hi,

On 3/7/26 02:16, Tabrez Ahmed wrote:
The voltage_show() function returns -1 when the A/D conversion
fails to complete within the polling loop. -1 maps to -EPERM
(operation not permitted), which does not describe the actual
failure.

Replace this -1 error code with -ETIMEDOUT to better indicate
the timeout condition to userspace.

Note: not runtime tested due to lack of hardware.

Signed-off-by: Tabrez Ahmed <tabreztalks@xxxxxxxxx>
---
Note: This patch applies on top of my previously submitted patch:
"hwmon: (ads7871) Replace sprintf() with sysfs_emit()"
drivers/hwmon/ads7871.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/hwmon/ads7871.c b/drivers/hwmon/ads7871.c
index b84426c940c5e..4df54c86f786c 100644
--- a/drivers/hwmon/ads7871.c
+++ b/drivers/hwmon/ads7871.c
@@ -126,7 +126,7 @@ static ssize_t voltage_show(struct device *dev, struct device_attribute *da,
val = ((val >> 2) * 25000) / 8192;
return sysfs_emit(buf, "%d\n", val);
} else {
- return -1;
+ return -ETIMEDOUT;
}
}

Good find, but please also drop the else (else after return is unnecessary).

Thanks,
Guenter