Really preserve the fan speed reading when changing the fan clock divider.

Changeset r4452 was incomplete.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@4454 7894878c-1315-0410-8ee3-d5d059ff63e0
This commit is contained in:
Jean Delvare committed 2007-06-17 18:52:53 +00:00
1 parent 971d793d02
commit 2362e26b04
1 file changed
+8 -4
+8 -4
View File
@@ -589,10 +589,14 @@ static void store_fan_min(struct i2c_client *client, long val, int nr)
fan min (unconditionally) */
if (new_div != data->fan_div[nr]) {
/* Preserve the fan speed reading */
if (new_div > data->fan_div[nr])
data->fan[nr] >>= new_div - data->fan_div[nr];
else
data->fan[nr] <<= data->fan_div[nr] - new_div;
if (data->fan[nr] != 0xff) {
if (new_div > data->fan_div[nr])
data->fan[nr] >>= new_div - data->fan_div[nr];
else if (data->fan[nr] & 0x80)
data->fan[nr] = 0xff;
else
data->fan[nr] <<= data->fan_div[nr] - new_div;
}
#ifdef DEBUG
printk(KERN_DEBUG "w83627ehf: fan%u clock divider changed "