Changeset 131

Show
Ignore:
Timestamp:
12/28/98 16:30:44 (14 years ago)
Author:
frodo
Message:

Fixed word-sized Winbond register read/write.

This should solve the temp2/3 bogus readings.

Location:
lm-sensors/trunk
Files:
2 modified

Legend:

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

    r128 r131  
    169169#define W83781D_INIT_TEMP_OVER 600 
    170170#define W83781D_INIT_TEMP_HYST 500 
     171#define W83781D_INIT_TEMP2_OVER 600 
     172#define W83781D_INIT_TEMP2_HYST 500 
     173#define W83781D_INIT_TEMP3_OVER 600 
     174#define W83781D_INIT_TEMP3_HYST 500 
    171175 
    172176#ifdef MODULE 
     
    645649  int res,word_sized; 
    646650 
    647   word_sized = (reg & 0x0ff) && (((reg && 0x00ff) == 0x50) ||  
    648                                  ((reg && 0x00ff) == 0x53) ||  
    649                                  ((reg && 0x00ff) == 0x55)); 
     651  word_sized = (reg & 0xff00) && (((reg & 0x00ff) == 0x50) ||  
     652                                  ((reg & 0x00ff) == 0x53) ||  
     653                                  ((reg & 0x00ff) == 0x55)); 
    650654  down((struct semaphore *) (client->data)); 
    651655  if (i2c_is_isa_client(client)) { 
     
    697701  int word_sized; 
    698702 
    699   word_sized = (reg & 0x0ff) && (((reg && 0x00ff) == 0x50) ||  
    700                                  ((reg && 0x00ff) == 0x53) ||  
    701                                  ((reg && 0x00ff) == 0x55)); 
     703  word_sized = (reg & 0xff00) && (((reg & 0x00ff) == 0x50) ||  
     704                                  ((reg & 0x00ff) == 0x53) ||  
     705                                  ((reg & 0x00ff) == 0x55)); 
    702706  down((struct semaphore *) (client->data)); 
    703707  if (i2c_is_isa_client(client)) { 
     
    795799 
    796800  w83781d_write_value(client,W83781D_REG_TEMP2_OVER, 
    797                       TEMP_ADD_TO_REG(W83781D_INIT_TEMP_OVER)); 
     801                      TEMP_ADD_TO_REG(W83781D_INIT_TEMP2_OVER)); 
    798802  w83781d_write_value(client,W83781D_REG_TEMP2_HYST, 
    799                       TEMP_ADD_TO_REG(W83781D_INIT_TEMP_HYST)); 
     803                      TEMP_ADD_TO_REG(W83781D_INIT_TEMP2_HYST)); 
    800804  w83781d_write_value(client,W83781D_REG_TEMP2_CONFIG,0x00); 
    801805 
    802806  w83781d_write_value(client,W83781D_REG_TEMP3_OVER, 
    803                       TEMP_ADD_TO_REG(W83781D_INIT_TEMP_OVER)); 
     807                      TEMP_ADD_TO_REG(W83781D_INIT_TEMP3_OVER)); 
    804808  w83781d_write_value(client,W83781D_REG_TEMP3_HYST, 
    805                       TEMP_ADD_TO_REG(W83781D_INIT_TEMP_HYST)); 
     809                      TEMP_ADD_TO_REG(W83781D_INIT_TEMP3_HYST)); 
    806810  w83781d_write_value(client,W83781D_REG_TEMP3_CONFIG,0x00); 
    807811 
  • lm-sensors/trunk/src/w83781d.c

    r128 r131  
    169169#define W83781D_INIT_TEMP_OVER 600 
    170170#define W83781D_INIT_TEMP_HYST 500 
     171#define W83781D_INIT_TEMP2_OVER 600 
     172#define W83781D_INIT_TEMP2_HYST 500 
     173#define W83781D_INIT_TEMP3_OVER 600 
     174#define W83781D_INIT_TEMP3_HYST 500 
    171175 
    172176#ifdef MODULE 
     
    645649  int res,word_sized; 
    646650 
    647   word_sized = (reg & 0x0ff) && (((reg && 0x00ff) == 0x50) ||  
    648                                  ((reg && 0x00ff) == 0x53) ||  
    649                                  ((reg && 0x00ff) == 0x55)); 
     651  word_sized = (reg & 0xff00) && (((reg & 0x00ff) == 0x50) ||  
     652                                  ((reg & 0x00ff) == 0x53) ||  
     653                                  ((reg & 0x00ff) == 0x55)); 
    650654  down((struct semaphore *) (client->data)); 
    651655  if (i2c_is_isa_client(client)) { 
     
    697701  int word_sized; 
    698702 
    699   word_sized = (reg & 0x0ff) && (((reg && 0x00ff) == 0x50) ||  
    700                                  ((reg && 0x00ff) == 0x53) ||  
    701                                  ((reg && 0x00ff) == 0x55)); 
     703  word_sized = (reg & 0xff00) && (((reg & 0x00ff) == 0x50) ||  
     704                                  ((reg & 0x00ff) == 0x53) ||  
     705                                  ((reg & 0x00ff) == 0x55)); 
    702706  down((struct semaphore *) (client->data)); 
    703707  if (i2c_is_isa_client(client)) { 
     
    795799 
    796800  w83781d_write_value(client,W83781D_REG_TEMP2_OVER, 
    797                       TEMP_ADD_TO_REG(W83781D_INIT_TEMP_OVER)); 
     801                      TEMP_ADD_TO_REG(W83781D_INIT_TEMP2_OVER)); 
    798802  w83781d_write_value(client,W83781D_REG_TEMP2_HYST, 
    799                       TEMP_ADD_TO_REG(W83781D_INIT_TEMP_HYST)); 
     803                      TEMP_ADD_TO_REG(W83781D_INIT_TEMP2_HYST)); 
    800804  w83781d_write_value(client,W83781D_REG_TEMP2_CONFIG,0x00); 
    801805 
    802806  w83781d_write_value(client,W83781D_REG_TEMP3_OVER, 
    803                       TEMP_ADD_TO_REG(W83781D_INIT_TEMP_OVER)); 
     807                      TEMP_ADD_TO_REG(W83781D_INIT_TEMP3_OVER)); 
    804808  w83781d_write_value(client,W83781D_REG_TEMP3_HYST, 
    805                       TEMP_ADD_TO_REG(W83781D_INIT_TEMP_HYST)); 
     809                      TEMP_ADD_TO_REG(W83781D_INIT_TEMP3_HYST)); 
    806810  w83781d_write_value(client,W83781D_REG_TEMP3_CONFIG,0x00); 
    807811