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>
This commit is contained in:
parent
175c490c9e
commit
628c6d27c0
|
@ -325,6 +325,7 @@ static struct max1619_data *max1619_update_device(struct device *dev)
|
||||||
{
|
{
|
||||||
struct i2c_client *client = to_i2c_client(dev);
|
struct i2c_client *client = to_i2c_client(dev);
|
||||||
struct max1619_data *data = i2c_get_clientdata(client);
|
struct max1619_data *data = i2c_get_clientdata(client);
|
||||||
|
int config;
|
||||||
|
|
||||||
mutex_lock(&data->update_lock);
|
mutex_lock(&data->update_lock);
|
||||||
|
|
||||||
|
@ -344,6 +345,10 @@ static struct max1619_data *max1619_update_device(struct device *dev)
|
||||||
MAX1619_REG_R_TCRIT_HYST);
|
MAX1619_REG_R_TCRIT_HYST);
|
||||||
data->alarms = i2c_smbus_read_byte_data(client,
|
data->alarms = i2c_smbus_read_byte_data(client,
|
||||||
MAX1619_REG_R_STATUS);
|
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->last_updated = jiffies;
|
||||||
data->valid = 1;
|
data->valid = 1;
|
||||||
|
|
Loading…
Reference in a new issue