From f7d91574e80dcab663b8afc651295bab69fa3537 Mon Sep 17 00:00:00 2001 From: Jean Delvare Date: Mon, 28 Aug 2006 14:37:54 +0200 Subject: [PATCH] --- yaml --- r: 36725 b: refs/heads/master c: c5df9b7a7c7600e4365e81f64ea44beb5be8bfa7 h: refs/heads/master i: 36723: 07f84f1253a04448ae5838247c161bc55b743707 v: v3 --- [refs] | 2 +- trunk/drivers/hwmon/it87.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 40dfe74e221c..819cabbeb93c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 87673dd735b8e089b7f2830edd353aa5f5e743ad +refs/heads/master: c5df9b7a7c7600e4365e81f64ea44beb5be8bfa7 diff --git a/trunk/drivers/hwmon/it87.c b/trunk/drivers/hwmon/it87.c index 956cd553c711..de62f60bcaf1 100644 --- a/trunk/drivers/hwmon/it87.c +++ b/trunk/drivers/hwmon/it87.c @@ -1202,6 +1202,22 @@ static void it87_init_client(struct i2c_client *client, struct it87_data *data) data->manual_pwm_ctl[i] = 0xff; } + /* Some chips seem to have default value 0xff for all limit + * registers. For low voltage limits it makes no sense and triggers + * alarms, so change to 0 instead. For high temperature limits, it + * means -1 degree C, which surprisingly doesn't trigger an alarm, + * but is still confusing, so change to 127 degrees C. */ + for (i = 0; i < 8; i++) { + tmp = it87_read_value(client, IT87_REG_VIN_MIN(i)); + if (tmp == 0xff) + it87_write_value(client, IT87_REG_VIN_MIN(i), 0); + } + for (i = 0; i < 3; i++) { + tmp = it87_read_value(client, IT87_REG_TEMP_HIGH(i)); + if (tmp == 0xff) + it87_write_value(client, IT87_REG_TEMP_HIGH(i), 127); + } + /* Check if temperature channnels are reset manually or by some reason */ tmp = it87_read_value(client, IT87_REG_TEMP_ENABLE); if ((tmp & 0x3f) == 0) {