Changeset 149

Show
Ignore:
Timestamp:
01/08/99 15:48:46 (14 years ago)
Author:
frodo
Message:

Resolved old fan_div related bug in lm80 and w83781 modules.

When computing the fan rotation speed, the register value of the dividers
was used, instead of the value it represents. I'ev fixed this ages ago
for the LM80 driver, but it seems I had forgotten to fix it at other places.

Location:
lm-sensors/trunk
Files:
5 modified

Legend:

Unmodified
Added
Removed
  • lm-sensors/trunk/CHANGES

    r147 r149  
    1414      cvs diff -r V2-0-0 -r V2-0-1 -u 
    1515 
     162.1.2 (199801??) 
     17  Modules lm80.o, w83781d.o: fan-related Segmentation fault corrected 
     18 
    16192.1.1 (19990107) 
    1720  Module i2c-proc.o: Hack to make /proc/bus/ possible for kernels 2.0.35 
    1821                     and older 
    1922  Module gl518sm.o: Miscelaneous bugs and problems solved 
     23  Program isadump: NEW 
    2024 
    21252.1.0 (19981230) 
    2226  Library: Completely NEW 
    2327  Program sensors: NEW 
     28  Program grab_busses: NEW 
    2429  Program decode-dimms: More information 
    2530  Module bit-mb.o: Removed spurious semicolon; now runs on more VIA chipsets 
  • lm-sensors/trunk/kernel/chips/lm80.c

    r128 r149  
    549549  else if (operation == SENSORS_PROC_REAL_READ) { 
    550550    lm80_update_client(client); 
    551     results[0] = FAN_FROM_REG(data->fan_min[nr-1],data->fan_div[nr-1]); 
    552     results[1] = FAN_FROM_REG(data->fan[nr-1],data->fan_div[nr-1]); 
     551    results[0] = FAN_FROM_REG(data->fan_min[nr-1], 
     552                              DIV_FROM_REG(data->fan_div[nr-1])); 
     553    results[1] = FAN_FROM_REG(data->fan[nr-1], 
     554                              DIV_FROM_REG(data->fan_div[nr-1])); 
    553555    *nrels_mag = 2; 
    554556  } else if (operation == SENSORS_PROC_REAL_WRITE) { 
    555557    if (*nrels_mag >= 1) { 
    556       data->fan_min[nr-1] = FAN_TO_REG(results[0],data->fan_div[nr-1]); 
     558      data->fan_min[nr-1] = FAN_TO_REG(results[0], 
     559                            DIV_FROM_REG(data->fan_div[nr-1])); 
    557560      lm80_write_value(client,nr==1?LM80_REG_FAN1_MIN:LM80_REG_FAN2_MIN, 
    558561                       data->fan_min[nr-1]); 
  • lm-sensors/trunk/kernel/chips/w83781d.c

    r136 r149  
    916916  else if (operation == SENSORS_PROC_REAL_READ) { 
    917917    w83781d_update_client(client); 
    918     results[0] = FAN_FROM_REG(data->fan_min[nr-1],data->fan_div[nr-1]); 
    919     results[1] = FAN_FROM_REG(data->fan[nr-1],data->fan_div[nr-1]); 
     918    results[0] = FAN_FROM_REG(data->fan_min[nr-1], 
     919                              FAN_DIV_FROM_REG(data->fan_div[nr-1])); 
     920    results[1] = FAN_FROM_REG(data->fan[nr-1], 
     921                              FAN_DIV_FROM_REG(data->fan_div[nr-1])); 
    920922    *nrels_mag = 2; 
    921923  } else if (operation == SENSORS_PROC_REAL_WRITE) { 
    922924    if (*nrels_mag >= 1) { 
    923       data->fan_min[nr-1] = FAN_TO_REG(results[0],data->fan_div[nr-1]); 
     925      data->fan_min[nr-1] = FAN_TO_REG(results[0], 
     926                                       FAN_DIV_FROM_REG(data->fan_div[nr-1])); 
    924927      w83781d_write_value(client,W83781D_REG_FAN_MIN(nr),data->fan_min[nr-1]); 
    925928    } 
  • lm-sensors/trunk/src/lm80.c

    r128 r149  
    549549  else if (operation == SENSORS_PROC_REAL_READ) { 
    550550    lm80_update_client(client); 
    551     results[0] = FAN_FROM_REG(data->fan_min[nr-1],data->fan_div[nr-1]); 
    552     results[1] = FAN_FROM_REG(data->fan[nr-1],data->fan_div[nr-1]); 
     551    results[0] = FAN_FROM_REG(data->fan_min[nr-1], 
     552                              DIV_FROM_REG(data->fan_div[nr-1])); 
     553    results[1] = FAN_FROM_REG(data->fan[nr-1], 
     554                              DIV_FROM_REG(data->fan_div[nr-1])); 
    553555    *nrels_mag = 2; 
    554556  } else if (operation == SENSORS_PROC_REAL_WRITE) { 
    555557    if (*nrels_mag >= 1) { 
    556       data->fan_min[nr-1] = FAN_TO_REG(results[0],data->fan_div[nr-1]); 
     558      data->fan_min[nr-1] = FAN_TO_REG(results[0], 
     559                            DIV_FROM_REG(data->fan_div[nr-1])); 
    557560      lm80_write_value(client,nr==1?LM80_REG_FAN1_MIN:LM80_REG_FAN2_MIN, 
    558561                       data->fan_min[nr-1]); 
  • lm-sensors/trunk/src/w83781d.c

    r136 r149  
    916916  else if (operation == SENSORS_PROC_REAL_READ) { 
    917917    w83781d_update_client(client); 
    918     results[0] = FAN_FROM_REG(data->fan_min[nr-1],data->fan_div[nr-1]); 
    919     results[1] = FAN_FROM_REG(data->fan[nr-1],data->fan_div[nr-1]); 
     918    results[0] = FAN_FROM_REG(data->fan_min[nr-1], 
     919                              FAN_DIV_FROM_REG(data->fan_div[nr-1])); 
     920    results[1] = FAN_FROM_REG(data->fan[nr-1], 
     921                              FAN_DIV_FROM_REG(data->fan_div[nr-1])); 
    920922    *nrels_mag = 2; 
    921923  } else if (operation == SENSORS_PROC_REAL_WRITE) { 
    922924    if (*nrels_mag >= 1) { 
    923       data->fan_min[nr-1] = FAN_TO_REG(results[0],data->fan_div[nr-1]); 
     925      data->fan_min[nr-1] = FAN_TO_REG(results[0], 
     926                                       FAN_DIV_FROM_REG(data->fan_div[nr-1])); 
    924927      w83781d_write_value(client,W83781D_REG_FAN_MIN(nr),data->fan_min[nr-1]); 
    925928    }