hwmon: (lm90) Do not report 'busy' status bit as alarm
authorGuenter Roeck <linux@roeck-us.net>
Fri, 3 Dec 2021 21:42:22 +0000 (13:42 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 29 Dec 2021 11:26:07 +0000 (12:26 +0100)
commit cdc5287acad9ede121924a9c9313544b80d15842 upstream.

Bit 7 of the status register indicates that the chip is busy
doing a conversion. It does not indicate an alarm status.
Stop reporting it as alarm status bit.

Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/hwmon/lm90.c

index e6355c3..959446b 100644 (file)
@@ -200,6 +200,7 @@ enum chips { lm90, adm1032, lm99, lm86, max6657, max6659, adt7461, max6680,
 #define LM90_STATUS_RHIGH      (1 << 4) /* remote high temp limit tripped */
 #define LM90_STATUS_LLOW       (1 << 5) /* local low temp limit tripped */
 #define LM90_STATUS_LHIGH      (1 << 6) /* local high temp limit tripped */
+#define LM90_STATUS_BUSY       (1 << 7) /* conversion is ongoing */
 
 #define MAX6696_STATUS2_R2THRM (1 << 1) /* remote2 THERM limit tripped */
 #define MAX6696_STATUS2_R2OPEN (1 << 2) /* remote2 is an open circuit */
@@ -819,7 +820,7 @@ static int lm90_update_device(struct device *dev)
                val = lm90_read_reg(client, LM90_REG_R_STATUS);
                if (val < 0)
                        return val;
-               data->alarms = val;     /* lower 8 bit of alarms */
+               data->alarms = val & ~LM90_STATUS_BUSY;
 
                if (data->kind == max6696) {
                        val = lm90_select_remote_channel(data, 1);