From 35f86ffee1b28f593d92a71da8c74b293dd71a92 Mon Sep 17 00:00:00 2001 From: Jean Delvare Date: Fri, 17 Oct 2008 17:51:09 +0200 Subject: [PATCH] --- yaml --- r: 115503 b: refs/heads/master c: 5f502a834a6471dc3cc456ccef66292e9e3a152e h: refs/heads/master i: 115501: 880a54c436ad6528b319a71b1fa2886929e02cb9 115499: e9f37a6ef9d629c051a8d67cd508e05e91930c90 115495: 7cfaeb16e55b4ba2d3ab07aa46e12670f6beb679 115487: 40e6642b6ef8651f7d30ddab4088b626b69879e9 v: v3 --- [refs] | 2 +- trunk/drivers/hwmon/lm90.c | 29 +++++++++++++++++++++-------- 2 files changed, 22 insertions(+), 9 deletions(-) diff --git a/[refs] b/[refs] index e484c33a8f8d..75ddb9104b1e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f65e17086fc141bee1592bbf6e709e9c7a43541b +refs/heads/master: 5f502a834a6471dc3cc456ccef66292e9e3a152e diff --git a/trunk/drivers/hwmon/lm90.c b/trunk/drivers/hwmon/lm90.c index 16b99e0bdff0..90489b8f5c8b 100644 --- a/trunk/drivers/hwmon/lm90.c +++ b/trunk/drivers/hwmon/lm90.c @@ -323,12 +323,16 @@ static ssize_t set_temp11(struct device *dev, struct device_attribute *devattr, mutex_lock(&data->update_lock); if (data->kind == adt7461) data->temp11[nr] = TEMP2_TO_REG_ADT7461(val); + else if (data->kind == max6657 || data->kind == max6680) + data->temp11[nr] = TEMP1_TO_REG(val) << 8; else data->temp11[nr] = TEMP2_TO_REG(val); + i2c_smbus_write_byte_data(client, reg[(nr - 1) * 2], data->temp11[nr] >> 8); - i2c_smbus_write_byte_data(client, reg[(nr - 1) * 2 + 1], - data->temp11[nr] & 0xff); + if (data->kind != max6657 && data->kind != max6680) + i2c_smbus_write_byte_data(client, reg[(nr - 1) * 2 + 1], + data->temp11[nr] & 0xff); mutex_unlock(&data->update_lock); return count; } @@ -801,12 +805,21 @@ static struct lm90_data *lm90_update_device(struct device *dev) lm90_read16(client, LM90_REG_R_REMOTE_TEMPH, LM90_REG_R_REMOTE_TEMPL, &data->temp11[0]); - if (lm90_read_reg(client, LM90_REG_R_REMOTE_LOWH, &h) == 0 - && lm90_read_reg(client, LM90_REG_R_REMOTE_LOWL, &l) == 0) - data->temp11[1] = (h << 8) | l; - if (lm90_read_reg(client, LM90_REG_R_REMOTE_HIGHH, &h) == 0 - && lm90_read_reg(client, LM90_REG_R_REMOTE_HIGHL, &l) == 0) - data->temp11[2] = (h << 8) | l; + if (lm90_read_reg(client, LM90_REG_R_REMOTE_LOWH, &h) == 0) { + data->temp11[1] = h << 8; + if (data->kind != max6657 && data->kind != max6680 + && lm90_read_reg(client, LM90_REG_R_REMOTE_LOWL, + &l) == 0) + data->temp11[1] |= l; + } + if (lm90_read_reg(client, LM90_REG_R_REMOTE_HIGHH, &h) == 0) { + data->temp11[2] = h << 8; + if (data->kind != max6657 && data->kind != max6680 + && lm90_read_reg(client, LM90_REG_R_REMOTE_HIGHL, + &l) == 0) + data->temp11[2] |= l; + } + if (data->kind != max6657) { if (lm90_read_reg(client, LM90_REG_R_REMOTE_OFFSH, &h) == 0