| From c52de109cdc0176ce94d5e3360e6477f22998d57 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Fri, 24 Sep 2021 12:30:10 +0300 |
| Subject: hwmon: (tmp421) report /PVLD condition as fault |
| |
| From: Paul Fertser <fercerpav@gmail.com> |
| |
| [ Upstream commit 540effa7f283d25bcc13c0940d808002fee340b8 ] |
| |
| For both local and remote sensors all the supported ICs can report an |
| "undervoltage lockout" condition which means the conversion wasn't |
| properly performed due to insufficient power supply voltage and so the |
| measurement results can't be trusted. |
| |
| Fixes: 9410700b881f ("hwmon: Add driver for Texas Instruments TMP421/422/423 sensor chips") |
| Signed-off-by: Paul Fertser <fercerpav@gmail.com> |
| Link: https://lore.kernel.org/r/20210924093011.26083-2-fercerpav@gmail.com |
| Signed-off-by: Guenter Roeck <linux@roeck-us.net> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/hwmon/tmp421.c | 9 +++------ |
| 1 file changed, 3 insertions(+), 6 deletions(-) |
| |
| diff --git a/drivers/hwmon/tmp421.c b/drivers/hwmon/tmp421.c |
| index 8fd8c3a94dfe..c9ef83627bb7 100644 |
| --- a/drivers/hwmon/tmp421.c |
| +++ b/drivers/hwmon/tmp421.c |
| @@ -179,10 +179,10 @@ static int tmp421_read(struct device *dev, enum hwmon_sensor_types type, |
| return 0; |
| case hwmon_temp_fault: |
| /* |
| - * The OPEN bit signals a fault. This is bit 0 of the temperature |
| - * register (low byte). |
| + * Any of OPEN or /PVLD bits indicate a hardware mulfunction |
| + * and the conversion result may be incorrect |
| */ |
| - *val = tmp421->temp[channel] & 0x01; |
| + *val = !!(tmp421->temp[channel] & 0x03); |
| return 0; |
| default: |
| return -EOPNOTSUPP; |
| @@ -195,9 +195,6 @@ static umode_t tmp421_is_visible(const void *data, enum hwmon_sensor_types type, |
| { |
| switch (attr) { |
| case hwmon_temp_fault: |
| - if (channel == 0) |
| - return 0; |
| - return 0444; |
| case hwmon_temp_input: |
| return 0444; |
| default: |
| -- |
| 2.33.0 |
| |