diff options
author | Guenter Roeck <linux@roeck-us.net> | 2014-04-19 09:15:38 -0700 |
---|---|---|
committer | Guenter Roeck <linux@roeck-us.net> | 2014-05-21 16:02:25 -0700 |
commit | 628c6d27c0f41657362262000d01861e8cb36c3a (patch) | |
tree | a9b3dd49174d47a88f312c55c8f10317a7bfca37 /drivers/hwmon/max1619.c | |
parent | 175c490c9e7f75dbe6addd937c41939c137c6847 (diff) |
hwmon: (max1619) Fix critical alarm display
The overtemperature status bit, which is used to display critical alarm status,
matches the output of the OVERT signal 1:1. If that signal is active-low, the
bit will read 1 if there is no alarm. It is therefore necessary to reverse
the bit in this case.
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
Diffstat (limited to 'drivers/hwmon/max1619.c')
-rw-r--r-- | drivers/hwmon/max1619.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/hwmon/max1619.c b/drivers/hwmon/max1619.c index 4c23afe113e..0927902ceba 100644 --- a/drivers/hwmon/max1619.c +++ b/drivers/hwmon/max1619.c @@ -325,6 +325,7 @@ static struct max1619_data *max1619_update_device(struct device *dev) { struct i2c_client *client = to_i2c_client(dev); struct max1619_data *data = i2c_get_clientdata(client); + int config; mutex_lock(&data->update_lock); @@ -344,6 +345,10 @@ static struct max1619_data *max1619_update_device(struct device *dev) MAX1619_REG_R_TCRIT_HYST); data->alarms = i2c_smbus_read_byte_data(client, MAX1619_REG_R_STATUS); + /* If OVERT polarity is low, reverse alarm bit */ + config = i2c_smbus_read_byte_data(client, MAX1619_REG_R_CONFIG); + if (!(config & 0x20)) + data->alarms ^= 0x02; data->last_updated = jiffies; data->valid = 1; |