aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/hwmon/lm85.c
diff options
context:
space:
mode:
authorGuenter Roeck <guenter.roeck@ericsson.com>2011-02-25 11:29:51 -0500
committerGuenter Roeck <guenter.roeck@ericsson.com>2011-03-15 01:36:25 -0400
commit4f8ab430fa5dc338ce3012c91a3c7a2685d708de (patch)
treeb8d225ae5c6f3038440aee694744bf0a778463c2 /drivers/hwmon/lm85.c
parentbc6db2b5ce79b1d5c4ba2763948fa6e731d60295 (diff)
hwmon: (lm85) Do not update hysteresis and temp_auto_off if auto_temp_min is changed
So far, the driver updates temp_auto_hyst and temp_auto_off if temp_auto_min changes. This may cause problems if temp_auto_off was not configured before configuring temp_auto_min, because one of the variables used (off_desired) is not initialized in this case. To simplify the code, and for consistency with other drivers, no longer update the delta between "min" and "off" until the user sets the "off" value again. Signed-off-by: Guenter Roeck <guenter.roeck@ericsson.com> Acked-by: Jean Delvare <khali@linux-fr.org>
Diffstat (limited to 'drivers/hwmon/lm85.c')
-rw-r--r--drivers/hwmon/lm85.c17
1 files changed, 0 insertions, 17 deletions
diff --git a/drivers/hwmon/lm85.c b/drivers/hwmon/lm85.c
index 590226a7c5a2..fbb5189141bc 100644
--- a/drivers/hwmon/lm85.c
+++ b/drivers/hwmon/lm85.c
@@ -283,10 +283,6 @@ struct lm85_zone {
283 u8 hyst; /* Low limit hysteresis. (0-15) */ 283 u8 hyst; /* Low limit hysteresis. (0-15) */
284 u8 range; /* Temp range, encoded */ 284 u8 range; /* Temp range, encoded */
285 s8 critical; /* "All fans ON" temp limit */ 285 s8 critical; /* "All fans ON" temp limit */
286 u8 off_desired; /* Actual "off" temperature specified. Preserved
287 * to prevent "drift" as other autofan control
288 * values change.
289 */
290 u8 max_desired; /* Actual "max" temperature specified. Preserved 286 u8 max_desired; /* Actual "max" temperature specified. Preserved
291 * to prevent "drift" as other autofan control 287 * to prevent "drift" as other autofan control
292 * values change. 288 * values change.
@@ -892,7 +888,6 @@ static ssize_t set_temp_auto_temp_off(struct device *dev,
892 888
893 mutex_lock(&data->update_lock); 889 mutex_lock(&data->update_lock);
894 min = TEMP_FROM_REG(data->zone[nr].limit); 890 min = TEMP_FROM_REG(data->zone[nr].limit);
895 data->zone[nr].off_desired = TEMP_TO_REG(val);
896 data->zone[nr].hyst = HYST_TO_REG(min - val); 891 data->zone[nr].hyst = HYST_TO_REG(min - val);
897 if (nr == 0 || nr == 1) { 892 if (nr == 0 || nr == 1) {
898 lm85_write_value(client, LM85_REG_AFAN_HYST1, 893 lm85_write_value(client, LM85_REG_AFAN_HYST1,
@@ -935,18 +930,6 @@ static ssize_t set_temp_auto_temp_min(struct device *dev,
935 ((data->zone[nr].range & 0x0f) << 4) 930 ((data->zone[nr].range & 0x0f) << 4)
936 | (data->pwm_freq[nr] & 0x07)); 931 | (data->pwm_freq[nr] & 0x07));
937 932
938/* Update temp_auto_hyst and temp_auto_off */
939 data->zone[nr].hyst = HYST_TO_REG(TEMP_FROM_REG(
940 data->zone[nr].limit) - TEMP_FROM_REG(
941 data->zone[nr].off_desired));
942 if (nr == 0 || nr == 1) {
943 lm85_write_value(client, LM85_REG_AFAN_HYST1,
944 (data->zone[0].hyst << 4)
945 | data->zone[1].hyst);
946 } else {
947 lm85_write_value(client, LM85_REG_AFAN_HYST2,
948 (data->zone[2].hyst << 4));
949 }
950 mutex_unlock(&data->update_lock); 933 mutex_unlock(&data->update_lock);
951 return count; 934 return count;
952} 935}