From 249d4363cf96b4615b6c27ad53d0bd43a89b87e0 Mon Sep 17 00:00:00 2001 From: Jean Delvare Date: Sat, 5 Jun 2004 12:27:02 +0000 Subject: [PATCH] Fix FAN_TO_REG. git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@2581 7894878c-1315-0410-8ee3-d5d059ff63e0 --- kernel/chips/adm1031.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/kernel/chips/adm1031.c b/kernel/chips/adm1031.c index e1f34785..c0db03a7 100644 --- a/kernel/chips/adm1031.c +++ b/kernel/chips/adm1031.c @@ -207,15 +207,16 @@ static int adm1031_id = 0; #define TEMP_TO_REG(val) ((val) < 0 ? (((val) - 500) / 1000) : \ (((val) + 500) / 1000)) -#define TEMP_FROM_REG(val) ((val) * 1000) +#define TEMP_FROM_REG(reg) ((reg) * 1000) #define TEMP_FROM_REG_EXT(val,ext) (TEMP_FROM_REG(val) + (ext) * 125) -#define FAN_FROM_REG(reg,div) ((reg) ? \ - (11250 * 60) / ((reg) * (div)) : 0) +#define FAN_FROM_REG(reg,div) ((reg) ? 675000 / ((reg) * (div)) : 0) -#define FAN_TO_REG(reg,div) FAN_FROM_REG(SENSORS_LIMIT(reg, 0, \ - 65535), div) +#define FAN_TO_REG(val,div) ((val) <= 0 ? 0 : \ + (val) * (div) >= 675000 ? 1 : \ + (val) * (div) <= 2647 ? 255 : \ + 675000 / ((val) * (div))) #define FAN_DIV_TO_REG(val) ((val) == 8 ? 0xc0 : \ (val) == 4 ? 0x80 : \