diff options
author | khali <khali@7894878c-1315-0410-8ee3-d5d059ff63e0> | 2009-03-13 12:45:34 +0000 |
---|---|---|
committer | khali <khali@7894878c-1315-0410-8ee3-d5d059ff63e0> | 2009-03-13 12:45:34 +0000 |
commit | 94a61c5445b0e4614947c77dcc443ce89e99895e (patch) | |
tree | 511097bfd5570dd20af720ef59a2c7d1db21e0ee | |
parent | 0b5668574e04977b0ca4db5476f2a28a5af3208c (diff) | |
download | lm-sensors-94a61c5445b0e4614947c77dcc443ce89e99895e.tar.gz |
Properly encode and decode -128 degrees C. Fix ported from Linux 2.6.
git-svn-id: http://lm-sensors.org/svn/lm-sensors/branches/lm-sensors-2.10@5686 7894878c-1315-0410-8ee3-d5d059ff63e0
-rw-r--r-- | CHANGES | 1 | ||||
-rw-r--r-- | kernel/chips/it87.c | 12 |
2 files changed, 7 insertions, 6 deletions
@@ -4,6 +4,7 @@ lm_sensors CHANGES file SVN-HEAD File lm_sensors.lsm: Delete, don't advertise a legacy branch File doc/developers/release_checklist: Skip mail to lsm + Module it87: Properly decode -128 degrees C (2.6 backport) Program sensors-detect: Fix detection of older DS1621 2.10.8 (20081216) diff --git a/kernel/chips/it87.c b/kernel/chips/it87.c index c3874665..9442c702 100644 --- a/kernel/chips/it87.c +++ b/kernel/chips/it87.c @@ -196,8 +196,8 @@ static inline u8 FAN_TO_REG(long rpm, int div) #define FAN_FROM_REG(val,div) ((val)==0?-1:(val)==255?0:1350000/((val)*(div))) #define TEMP_TO_REG(val) (SENSORS_LIMIT(((val)<0?(((val)-5)/10):\ - ((val)+5)/10),-127,127)) -#define TEMP_FROM_REG(val) (((val)>0x80?(val)-0x100:(val))*10) + ((val)+5)/10), -128, 127)) +#define TEMP_FROM_REG(val) ((val) * 10) #define VID_FROM_REG(val) ((val)==0x1f?0:(val)>=0x10?510-(val)*10:\ 205-(val)*5) @@ -233,15 +233,15 @@ struct it87_data { u8 in_min[9]; /* Register value */ u8 fan[3]; /* Register value */ u8 fan_min[3]; /* Register value */ - u8 temp[3]; /* Register value */ - u8 temp_high[3]; /* Register value */ - u8 temp_low[3]; /* Register value */ + s8 temp[3]; /* Register value */ + s8 temp_high[3]; /* Register value */ + s8 temp_low[3]; /* Register value */ u8 fan_div[3]; /* Register encoding, shifted right */ u8 vid; /* Register encoding, combined */ u32 alarms; /* Register encoding, combined */ u8 pwm[3]; /* Register value */ u8 fan_ctl[2]; /* Register encoding */ - u8 sg_tl[3][5]; /* Register value */ + s8 sg_tl[3][5]; /* Register value */ u8 sg_pwm[3][3]; /* Register value */ u8 sens[3]; /* 2 = Thermistor, 3 = PII/Celeron diode */ |