Show
Ignore:
Timestamp:
03/22/99 00:47:20 (14 years ago)
Author:
mds
Message:

fixed off-by-factor-of-2 of FAN_FROM_REG in w83781d.
Improved bounds checking for FAN_TO_REG in all files.
For lm78-compatible drivers, minimum speed is 2657 RPM when the
divisor is 2. Attempts to set lower than that now are set to 0.
Before was set to a random number.
Thanks Jeff Dairiki.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lm-sensors/trunk/kernel/chips/gl518sm.c

    r293 r330  
    6464#define TEMP_FROM_REG(val) (((val) - 119) * 10) 
    6565 
    66 #define FAN_TO_REG(val,div) \ 
    67  (( (val)==0 ? 255 : ((960000+(val)*(div))/(2*(val)*(div))) ) & 0xff) 
     66static inline unsigned char 
     67FAN_TO_REG (unsigned rpm, unsigned divisor) 
     68{ 
     69  unsigned val; 
     70   
     71  if (rpm == 0) 
     72      return 255; 
     73 
     74  val = (960000 + rpm * divisor) / (2 * rpm * divisor); 
     75  if (val > 255) 
     76      val = 255; 
     77  return val; 
     78} 
    6879#define FAN_FROM_REG(val,div) \ 
    6980 ( (val)==0 ? 0 : (val)==255 ? 0 : (960000/(2*(val)*(div))) )