Changeset 921

Show
Ignore:
Timestamp:
11/01/00 17:48:18 (14 years ago)
Author:
rock
Message:

(stephen) Updated cache time to 1 second to be compliant with National spec
read times. Updated voltage calculations for AIN1/2 and VCCP1/2. Fixed
VID calculation.

Files:
1 modified

Legend:

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

    r897 r921  
    6262#define LM87_REG_IN(nr) (0x20 + (nr)) 
    6363 
     64#define AIN1     0 
     65#define VCCP1    1 
     66#define VCCP2    5 
     67 
     68/* Initial limits */ 
    6469 
    6570/* 
     
    167172#define DIV_TO_REG(val) ((val)==1?0:((val)==8?3:((val)==4?2:1))) 
    168173 
     174#if 0 
    169175#define VID_FROM_REG(val) ((val)==0x1f?0:(val)>=0x10?510-(val)*10:\ 
    170176                           205-(val)*5) 
    171  
    172 /* Initial limits */ 
     177#endif 
     178 
    173179#define LM87_INIT_IN_0 190 
    174180#define LM87_INIT_IN_1 190 
     
    216222        (LM87_INIT_IN_5 + ((LM87_INIT_IN_5 * LM87_INIT_IN_PERCENTAGE) / 100)) 
    217223 
    218 #define LM87_INIT_FAN_MIN 4000 
    219  
    220 #define LM87_INIT_EXT_TEMP_MAX 800 
     224#define LM87_INIT_FAN_MIN 3000 
     225 
     226#define LM87_INIT_EXT_TEMP_MAX 600 
    221227#define LM87_INIT_EXT_TEMP_MIN 50 
    222 #define LM87_INIT_INT_TEMP_MAX 700 
     228#define LM87_INIT_INT_TEMP_MAX 600 
    223229#define LM87_INIT_INT_TEMP_MIN 50 
    224230 
     
    571577        down(&data->update_lock); 
    572578 
    573         if ( 
    574             (jiffies - data->last_updated > 
    575              (data->type == LM87 ? HZ / 2 : HZ * 2)) 
    576             || (jiffies < data->last_updated) || !data->valid) { 
     579        if ((jiffies - data->last_updated > HZ) ||  /* 1 sec cache */ 
     580            (jiffies < data->last_updated)      ||  
     581             !data->valid) { 
    577582 
    578583#ifdef DEBUG 
     
    674679         *   against 1.25V value. 
    675680         ************************************************************/ 
    676         int scales[6] = { 260, 260, 344, 520, 1250, 260 }; 
     681        int scales[6] = { 260, 200, 344, 520, 1250, 260 }; 
    677682 
    678683        struct LM87_data *data = client->data; 
     
    683688        else if (operation == SENSORS_PROC_REAL_READ) { 
    684689                LM87_update_client(client); 
     690 
    685691                results[0] = 
    686692                    IN_FROM_REG(data->in_min[nr], nr) * scales[nr] / 192; 
    687693                results[1] = 
    688694                    IN_FROM_REG(data->in_max[nr], nr) * scales[nr] / 192; 
    689                 results[2] = 
    690                     IN_FROM_REG(data->in[nr], nr) * scales[nr] / 192; 
     695  
     696                if (nr == AIN1) { 
     697                   results[2] = ((data->in[nr] * 10) * 98) / 1000; 
     698                } 
     699                else if (nr == VCCP1 || nr == VCCP2) { 
     700                   results[2] = ((data->in[nr] * 10) * 141) / 1000; 
     701                } 
     702                else { 
     703                   results[2] = 
     704                       IN_FROM_REG(data->in[nr], nr) * scales[nr] / 192; 
     705                } 
     706 
    691707                *nrels_mag = 3; 
    692708        } else if (operation == SENSORS_PROC_REAL_WRITE) { 
     
    866882        struct LM87_data *data = client->data; 
    867883 
     884 
    868885        if (operation == SENSORS_PROC_REAL_INFO) 
    869886                *nrels_mag = 2; 
    870887        else if (operation == SENSORS_PROC_REAL_READ) { 
     888 
    871889                LM87_update_client(client); 
    872                 results[0] = VID_FROM_REG(data->vid); 
    873                 *nrels_mag = 1; 
     890                if ((data->vid == 0x1f) || (data->vid == 0x0f)) { 
     891                   results[0] = 0; 
     892                } 
     893                else if (data->vid > 0x0f) { 
     894                   results[0] = (1275 - (((data->vid - 0x10) * 1000) * 0.025))/10; 
     895                } 
     896                else { 
     897                   results[0] = 200 - ((data->vid * 100) * 0.05); 
     898                } 
     899                  
     900              *nrels_mag = 1; 
    874901        } 
    875902} 
     
    914941    ("Frodo Looijaard <frodol@dds.nl>, Philip Edelbrock <phil@netroedge.com>,  
    915942      and Stephen Rousset <stephen.rousset@rocketlogix.com>"); 
     943 
    916944MODULE_DESCRIPTION("LM87 driver"); 
    917945