Changeset 953

Show
Ignore:
Timestamp:
12/16/00 18:07:24 (13 years ago)
Author:
mds
Message:

(mds) add lm87 support to 'sensors'. Rename SYSCTL_* values to standard

TEMP[1-3], etc. No fan2 support in driver yet.

Location:
lm-sensors/trunk
Files:
6 modified

Legend:

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

    r952 r953  
    347347        {LM87_SYSCTL_IN5, "in5", NULL, 0, 0644, NULL, &sensors_proc_real, 
    348348          &sensors_sysctl_real, NULL, &lm87_in}, 
    349         {LM87_SYSCTL_FAN, "fan1", NULL, 0, 0644, NULL, &sensors_proc_real, 
     349        {LM87_SYSCTL_FAN1, "fan1", NULL, 0, 0644, NULL, &sensors_proc_real, 
    350350          &sensors_sysctl_real, NULL, &lm87_fan}, 
    351         {LM87_SYSCTL_FRNT_TEMP, "temp1", NULL, 
     351        {LM87_SYSCTL_FAN2, "fan2", NULL, 0, 0644, NULL, &sensors_proc_real, 
     352          &sensors_sysctl_real, NULL, &lm87_fan}, 
     353        {LM87_SYSCTL_TEMP1, "temp1", NULL, 0, 0644, NULL, &sensors_proc_real, 
     354          &sensors_sysctl_real, NULL, &lm87_temp}, 
     355        {LM87_SYSCTL_TEMP2, "temp2", NULL, 0, 0644, NULL, &sensors_proc_real, 
     356          &sensors_sysctl_real, NULL, &lm87_temp}, 
     357        {LM87_SYSCTL_TEMP3, "temp3", NULL, 
    352358          0, 0644, NULL, &sensors_proc_real, 
    353           &sensors_sysctl_real, NULL, &lm87_temp}, 
    354         {LM87_SYSCTL_CPU_TEMP, "temp2", NULL, 0, 0644, NULL, &sensors_proc_real, 
    355           &sensors_sysctl_real, NULL, &lm87_temp}, 
    356         {LM87_SYSCTL_INT_TEMP, "temp3", NULL, 0, 0644, NULL, &sensors_proc_real, 
    357359          &sensors_sysctl_real, NULL, &lm87_temp}, 
    358360        {LM87_SYSCTL_FAN_DIV, "fan_div", NULL, 
     
    731733{ 
    732734        struct lm87_data *data = client->data; 
    733         int nr = ctl_name - LM87_SYSCTL_FAN + 1; /* not sure +1 needed */ 
     735/* 
     736  need to fix this function to handle both fans 
     737        int nr = ctl_name - LM87_SYSCTL_FAN + 1; 
     738*/ 
    734739 
    735740        if (operation == SENSORS_PROC_REAL_INFO) 
     
    766771 
    767772           /* find out which temp. is being requested */ 
    768            if (ctl_name == LM87_SYSCTL_FRNT_TEMP)  
     773           if (ctl_name == LM87_SYSCTL_TEMP3)  
    769774           { 
    770775                results[0] = TEMP_LIMIT_FROM_REG(data->front_amb_temp_max); 
     
    772777                results[2] = TEMP_FROM_REG(data->front_amb_temp); 
    773778           } 
    774            else if(ctl_name == LM87_SYSCTL_CPU_TEMP) 
     779           else if(ctl_name == LM87_SYSCTL_TEMP2) 
    775780           { 
    776781                results[0] = TEMP_LIMIT_FROM_REG(data->cpu_temp_max); 
     
    778783                results[2] = TEMP_FROM_REG(data->cpu_temp); 
    779784           } 
    780            else if(ctl_name == LM87_SYSCTL_INT_TEMP) 
     785           else if(ctl_name == LM87_SYSCTL_TEMP1) 
    781786           { 
    782787                results[0] = TEMP_LIMIT_FROM_REG(data->int_temp_max); 
     
    787792        } else if (operation == SENSORS_PROC_REAL_WRITE) { 
    788793                if (*nrels_mag >= 1) { 
    789                    if (ctl_name == LM87_SYSCTL_FRNT_TEMP) { 
     794                   if (ctl_name == LM87_SYSCTL_TEMP3) { 
    790795                        data->front_amb_temp_max = 
    791796                                             TEMP_LIMIT_TO_REG(results[0]); 
     
    793798                                            data->front_amb_temp_max); 
    794799                   } 
    795                    if (ctl_name == LM87_SYSCTL_CPU_TEMP) { 
     800                   if (ctl_name == LM87_SYSCTL_TEMP2) { 
    796801                        data->cpu_temp_max = TEMP_LIMIT_TO_REG(results[0]); 
    797802                        lm87_write_value(client, LM87_REG_EXT_TEMP_1_HIGH, 
    798803                                            data->int_temp_max); 
    799804                   } 
    800                    if (ctl_name == LM87_SYSCTL_INT_TEMP) { 
     805                   if (ctl_name == LM87_SYSCTL_TEMP1) { 
    801806                        data->int_temp_max = TEMP_LIMIT_TO_REG(results[0]); 
    802807                        lm87_write_value(client, LM87_REG_INT_TEMP_HIGH, 
     
    805810                } 
    806811                if (*nrels_mag >= 2) { 
    807                    if (ctl_name == LM87_SYSCTL_FRNT_TEMP) { 
     812                   if (ctl_name == LM87_SYSCTL_TEMP3) { 
    808813                        data->front_amb_temp_min = 
    809814                                          TEMP_LIMIT_TO_REG(results[0]); 
     
    811816                                            data->front_amb_temp_min); 
    812817                   } 
    813                    if (ctl_name == LM87_SYSCTL_CPU_TEMP) { 
     818                   if (ctl_name == LM87_SYSCTL_TEMP2) { 
    814819                        data->cpu_temp_min = TEMP_LIMIT_TO_REG(results[0]); 
    815820                        lm87_write_value(client, LM87_REG_EXT_TEMP_1_LOW, 
    816821                                            data->int_temp_min); 
    817822                   } 
    818                    if (ctl_name == LM87_SYSCTL_INT_TEMP) { 
     823                   if (ctl_name == LM87_SYSCTL_TEMP1) { 
    819824                        data->int_temp_min = TEMP_LIMIT_TO_REG(results[1]); 
    820825                        lm87_write_value(client, LM87_REG_INT_TEMP_LOW, 
  • lm-sensors/trunk/kernel/include/sensors.h

    r935 r953  
    757757#define LM87_SYSCTL_IN4        1004 
    758758#define LM87_SYSCTL_IN5        1005 
    759 #define LM87_SYSCTL_FAN        1102 
    760 #define LM87_SYSCTL_FRNT_TEMP  1250 /* Degrees Celcius * 100 */ 
    761 #define LM87_SYSCTL_CPU_TEMP   1251 /* Degrees Celcius * 100 */ 
    762 #define LM87_SYSCTL_INT_TEMP   1252 /* Degrees Celcius * 100 */ 
     759#define LM87_SYSCTL_FAN1       1101 
     760#define LM87_SYSCTL_FAN2       1102 
     761#define LM87_SYSCTL_TEMP1      1250 /* Degrees Celcius * 100 */ 
     762#define LM87_SYSCTL_TEMP2      1251 /* Degrees Celcius * 100 */ 
     763#define LM87_SYSCTL_TEMP3      1252 /* Degrees Celcius * 100 */ 
    763764#define LM87_SYSCTL_FAN_DIV    2000 /* 1, 2, 4 or 8 */ 
    764765#define LM87_SYSCTL_ALARMS     2001 /* bitvector */ 
     
    772773#define LM87_ALARM_IN4      0x0100 
    773774#define LM87_ALARM_IN5      0x0200 
    774 #define LM87_ALARM_AMB_TEMP 0x0040 
     775#define LM87_ALARM_TEMP1    0x0010 
     776#define LM87_ALARM_TEMP2    0x4020  /* include D1 fault */ 
     777#define LM87_ALARM_TEMP3    0x8001  /* include D2 fault */ 
     778#define LM87_ALARM_FAN1     0x0040 
    775779#define LM87_ALARM_FAN2     0x0080 
    776 #define LM87_ALARM_INT_TEMP 0x0010 
    777780#define LM87_ALARM_CHAS     0x1000 
    778781 
  • lm-sensors/trunk/lib/chips.c

    r935 r953  
    18251825                        SENSORS_LM87_IN5, SENSORS_MODE_RW,  
    18261826                        LM87_SYSCTL_IN5, VALUE(2), 2 }, 
    1827     { SENSORS_LM87_FAN2_AIN2, "fan", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
    1828                         SENSORS_MODE_R, LM87_SYSCTL_FAN, VALUE(2), 0 }, 
    1829     { SENSORS_LM87_FAN1_AIN1_LIMIT, "fan1/ain1_limit", SENSORS_LM87_FAN1_AIN1, 
    1830                         SENSORS_LM87_FAN1_AIN1, SENSORS_MODE_RW,  
    1831                         LM87_SYSCTL_FAN, VALUE(1), 0 }, 
    1832     { SENSORS_LM87_FAN2_AIN2_LIMIT, "fan2/ain2_limit", SENSORS_LM87_FAN2_AIN2,  
    1833                         SENSORS_LM87_FAN2_AIN2, SENSORS_MODE_RW,  
    1834                         LM87_SYSCTL_FAN, VALUE(1), 0 }, 
    1835     { SENSORS_LM87_FRONT_TEMP, "frnt_amb_temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
    1836                          SENSORS_MODE_R, LM87_SYSCTL_FRNT_TEMP, VALUE(3), 1 }, 
    1837     { SENSORS_LM87_CPU_TEMP, "CPU_Temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,  
    1838                         SENSORS_MODE_R, LM87_SYSCTL_CPU_TEMP, VALUE(3), 1 }, 
    1839     { SENSORS_LM87_INT_TEMP, "int_temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
    1840                          SENSORS_MODE_R, LM87_SYSCTL_INT_TEMP, VALUE(3), 1 }, 
    1841     { SENSORS_LM87_INT_TEMP_HYST, "temp_hyst", SENSORS_LM87_INT_TEMP, 
    1842                          SENSORS_LM87_INT_TEMP, SENSORS_MODE_RW,  
    1843                          LM87_SYSCTL_INT_TEMP, VALUE(2), 1 }, 
    1844     { SENSORS_LM87_INT_TEMP_OVER, "temp_over", SENSORS_LM87_INT_TEMP, 
    1845                          SENSORS_LM87_INT_TEMP, SENSORS_MODE_RW,  
    1846                          LM87_SYSCTL_INT_TEMP, VALUE(1), 1 }, 
     1827    { SENSORS_LM87_FAN1, "fan1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
     1828                        SENSORS_MODE_R, LM87_SYSCTL_FAN1, VALUE(2), 0 }, 
     1829    { SENSORS_LM87_FAN2, "fan2", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
     1830                        SENSORS_MODE_R, LM87_SYSCTL_FAN2, VALUE(2), 0 }, 
     1831    { SENSORS_LM87_FAN1_MIN, "fan1 min", SENSORS_LM87_FAN1, 
     1832                        SENSORS_LM87_FAN1, SENSORS_MODE_RW,  
     1833                        LM87_SYSCTL_FAN1, VALUE(1), 0 }, 
     1834    { SENSORS_LM87_FAN2_MIN, "fan2 min", SENSORS_LM87_FAN2,  
     1835                        SENSORS_LM87_FAN2, SENSORS_MODE_RW,  
     1836                        LM87_SYSCTL_FAN2, VALUE(1), 0 }, 
     1837    { SENSORS_LM87_TEMP3, "temp3", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
     1838                         SENSORS_MODE_R, LM87_SYSCTL_TEMP3, VALUE(3), 1 }, 
     1839    { SENSORS_LM87_TEMP2, "CPU Temp", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,  
     1840                        SENSORS_MODE_R, LM87_SYSCTL_TEMP2, VALUE(3), 1 }, 
     1841    { SENSORS_LM87_TEMP1, "temp1", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
     1842                         SENSORS_MODE_R, LM87_SYSCTL_TEMP1, VALUE(3), 1 }, 
     1843    { SENSORS_LM87_TEMP1_HYST, "temp_hyst", SENSORS_LM87_TEMP1, 
     1844                         SENSORS_LM87_TEMP1, SENSORS_MODE_RW,  
     1845                         LM87_SYSCTL_TEMP1, VALUE(2), 1 }, 
     1846    { SENSORS_LM87_TEMP1_OVER, "temp_over", SENSORS_LM87_TEMP1, 
     1847                         SENSORS_LM87_TEMP1, SENSORS_MODE_RW,  
     1848                         LM87_SYSCTL_TEMP1, VALUE(1), 1 }, 
     1849    { SENSORS_LM87_TEMP2_HYST, "temp_hyst", SENSORS_LM87_TEMP2, 
     1850                         SENSORS_LM87_TEMP2, SENSORS_MODE_RW,  
     1851                         LM87_SYSCTL_TEMP2, VALUE(2), 1 }, 
     1852    { SENSORS_LM87_TEMP2_OVER, "temp_over", SENSORS_LM87_TEMP2, 
     1853                         SENSORS_LM87_TEMP2, SENSORS_MODE_RW,  
     1854                         LM87_SYSCTL_TEMP2, VALUE(1), 1 }, 
     1855    { SENSORS_LM87_TEMP3_HYST, "temp_hyst", SENSORS_LM87_TEMP3, 
     1856                         SENSORS_LM87_TEMP3, SENSORS_MODE_RW,  
     1857                         LM87_SYSCTL_TEMP3, VALUE(2), 1 }, 
     1858    { SENSORS_LM87_TEMP3_OVER, "temp_over", SENSORS_LM87_TEMP3, 
     1859                         SENSORS_LM87_TEMP3, SENSORS_MODE_RW,  
     1860                         LM87_SYSCTL_TEMP3, VALUE(1), 1 }, 
    18471861    { SENSORS_LM87_VID, "vid", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, 
    18481862                         SENSORS_MODE_R, LM87_SYSCTL_VID, VALUE(1), 2 }, 
    1849     { SENSORS_LM87_FAN_DIV, "fan_div", SENSORS_LM87_FAN2_AIN2,  
     1863    { SENSORS_LM87_FAN1_DIV, "fan_div", SENSORS_LM87_FAN1,  
    18501864                         SENSORS_NO_MAPPING, SENSORS_MODE_RW,  
    18511865                         LM87_SYSCTL_FAN_DIV, VALUE(1), 0 }, 
     1866    { SENSORS_LM87_FAN2_DIV, "fan_div", SENSORS_LM87_FAN2,  
     1867                         SENSORS_NO_MAPPING, SENSORS_MODE_RW,  
     1868                         LM87_SYSCTL_FAN_DIV, VALUE(2), 0 }, 
    18521869    { SENSORS_LM87_ALARMS, "alarms", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING,  
    18531870                         SENSORS_MODE_R, LM87_SYSCTL_ALARMS, VALUE(1), 0 }, 
  • lm-sensors/trunk/lib/chips.h

    r951 r953  
    841841#define SENSORS_LM87_IN4_MAX         25 /* RW */ 
    842842#define SENSORS_LM87_IN5_MAX         26 /* RW */ 
    843 #define SENSORS_LM87_FAN1_AIN1       31 /* R */ 
    844 #define SENSORS_LM87_FAN2_AIN2       32 /* R */ 
    845 #define SENSORS_LM87_FAN1_AIN1_LIMIT 41 /* RW */ 
    846 #define SENSORS_LM87_FAN2_AIN2_LIMIT 42 /* RW */ 
    847 #define SENSORS_LM87_FRONT_TEMP      51 /* R */ 
    848 #define SENSORS_LM87_CPU_TEMP        52 /* R */ 
    849 #define SENSORS_LM87_INT_TEMP        53 /* R */ 
    850 #define SENSORS_LM87_INT_TEMP_HYST   54 /* RW */ 
    851 #define SENSORS_LM87_INT_TEMP_OVER   55 /* RW */ 
     843#define SENSORS_LM87_FAN1            31 /* R */ 
     844#define SENSORS_LM87_FAN2            32 /* R */ 
     845#define SENSORS_LM87_FAN1_MIN        41 /* RW */ 
     846#define SENSORS_LM87_FAN2_MIN        42 /* RW */ 
     847#define SENSORS_LM87_TEMP1           51 /* R */ 
     848#define SENSORS_LM87_TEMP2           52 /* R */ 
     849#define SENSORS_LM87_TEMP3           53 /* R */ 
     850#define SENSORS_LM87_TEMP1_HYST      54 /* RW */ 
     851#define SENSORS_LM87_TEMP1_OVER      55 /* RW */ 
     852#define SENSORS_LM87_TEMP2_HYST      56 /* RW */ 
     853#define SENSORS_LM87_TEMP2_OVER      57 /* RW */ 
     854#define SENSORS_LM87_TEMP3_HYST      58 /* RW */ 
     855#define SENSORS_LM87_TEMP3_OVER      59 /* RW */ 
    852856#define SENSORS_LM87_VID             61 /* R */ 
    853 #define SENSORS_LM87_FAN_DIV         71 /* RW */ 
     857#define SENSORS_LM87_FAN1_DIV        71 /* RW */ 
     858#define SENSORS_LM87_FAN2_DIV        72 /* RW */ 
    854859#define SENSORS_LM87_ALARMS          81 /* R */ 
    855860#define SENSORS_LM87_ANALOG_OUT      82 /* RW */ 
  • lm-sensors/trunk/prog/sensors/chips.c

    r939 r953  
    12731273      print_label(label,10); 
    12741274      printf("Chassis intrusion detection                  ALARM\n"); 
     1275    } 
     1276  } 
     1277  free_the_label(&label); 
     1278} 
     1279 
     1280void print_lm87(const sensors_chip_name *name) 
     1281{ 
     1282  char *label = NULL; 
     1283  double cur,min,max,fdiv; 
     1284  int alarms,valid; 
     1285 
     1286  if (!sensors_get_feature(*name,SENSORS_LM87_ALARMS,&cur)) 
     1287    alarms = cur + 0.5; 
     1288  else { 
     1289    printf("ERROR: Can't get alarm data!\n"); 
     1290    alarms = 0; 
     1291  } 
     1292 
     1293 
     1294  if (!sensors_get_label_and_valid(*name,SENSORS_LM87_IN0,&label,&valid) && 
     1295      !sensors_get_feature(*name,SENSORS_LM87_IN0,&cur) && 
     1296      !sensors_get_feature(*name,SENSORS_LM87_IN0_MIN,&min) && 
     1297      !sensors_get_feature(*name,SENSORS_LM87_IN0_MAX,&max)) { 
     1298    if (valid) { 
     1299      print_label(label,10); 
     1300      printf("%+6.2f V  (min = %+6.2f V, max = %+6.2f V)   %s\n", 
     1301             cur,min,max,alarms&LM87_ALARM_IN0?"ALARM":""); 
     1302    } 
     1303  } else 
     1304    printf("ERROR: Can't get IN0 data!\n"); 
     1305  free_the_label(&label); 
     1306  if (!sensors_get_label_and_valid(*name,SENSORS_LM87_IN1,&label,&valid) && 
     1307      !sensors_get_feature(*name,SENSORS_LM87_IN1,&cur) && 
     1308      !sensors_get_feature(*name,SENSORS_LM87_IN1_MIN,&min) && 
     1309      !sensors_get_feature(*name,SENSORS_LM87_IN1_MAX,&max)) { 
     1310    if (valid) { 
     1311      print_label(label,10); 
     1312      printf("%+6.2f V  (min = %+6.2f V, max = %+6.2f V)   %s\n", 
     1313             cur,min,max,alarms&LM87_ALARM_IN1?"ALARM":""); 
     1314    } 
     1315  } else 
     1316    printf("ERROR: Can't get IN1 data!\n"); 
     1317  free_the_label(&label); 
     1318  if (!sensors_get_label_and_valid(*name,SENSORS_LM87_IN2,&label,&valid) && 
     1319      !sensors_get_feature(*name,SENSORS_LM87_IN2,&cur) && 
     1320      !sensors_get_feature(*name,SENSORS_LM87_IN2_MIN,&min) && 
     1321      !sensors_get_feature(*name,SENSORS_LM87_IN2_MAX,&max)) { 
     1322    if (valid) { 
     1323      print_label(label,10); 
     1324      printf("%+6.2f V  (min = %+6.2f V, max = %+6.2f V)   %s\n", 
     1325             cur,min,max,alarms&LM87_ALARM_IN2?"ALARM":""); 
     1326    } 
     1327  } else 
     1328    printf("ERROR: Can't get IN2 data!\n"); 
     1329  free_the_label(&label); 
     1330  if (!sensors_get_label_and_valid(*name,SENSORS_LM87_IN3,&label,&valid) && 
     1331      !sensors_get_feature(*name,SENSORS_LM87_IN3,&cur) && 
     1332      !sensors_get_feature(*name,SENSORS_LM87_IN3_MIN,&min) && 
     1333      !sensors_get_feature(*name,SENSORS_LM87_IN3_MAX,&max)) { 
     1334    if (valid) { 
     1335      print_label(label,10); 
     1336      printf("%+6.2f V  (min = %+6.2f V, max = %+6.2f V)   %s\n", 
     1337             cur,min,max,alarms&LM87_ALARM_IN3?"ALARM":""); 
     1338    } 
     1339  } else 
     1340    printf("ERROR: Can't get IN3 data!\n"); 
     1341  free_the_label(&label); 
     1342  if (!sensors_get_label_and_valid(*name,SENSORS_LM87_IN4,&label,&valid) && 
     1343      !sensors_get_feature(*name,SENSORS_LM87_IN4,&cur) && 
     1344      !sensors_get_feature(*name,SENSORS_LM87_IN4_MIN,&min) && 
     1345      !sensors_get_feature(*name,SENSORS_LM87_IN4_MAX,&max)) { 
     1346    if (valid) { 
     1347      print_label(label,10); 
     1348      printf("%+6.2f V  (min = %+6.2f V, max = %+6.2f V)   %s\n", 
     1349             cur,min,max,alarms&LM87_ALARM_IN4?"ALARM":""); 
     1350    } 
     1351  } else 
     1352    printf("ERROR: Can't get IN4 data!\n"); 
     1353  free_the_label(&label); 
     1354  if (!sensors_get_label_and_valid(*name,SENSORS_LM87_IN5,&label,&valid) && 
     1355      !sensors_get_feature(*name,SENSORS_LM87_IN5,&cur) && 
     1356      !sensors_get_feature(*name,SENSORS_LM87_IN5_MIN,&min) && 
     1357      !sensors_get_feature(*name,SENSORS_LM87_IN5_MAX,&max)) { 
     1358    if (valid) { 
     1359      print_label(label,10); 
     1360      printf("%+6.2f V  (min = %+6.2f V, max = %+6.2f V)   %s\n", 
     1361             cur,min,max,alarms&LM87_ALARM_IN5?"ALARM":""); 
     1362    } 
     1363  } else 
     1364    printf("ERROR: Can't get IN5 data!\n"); 
     1365  free_the_label(&label); 
     1366 
     1367  if (!sensors_get_label_and_valid(*name,SENSORS_LM87_FAN1,&label,&valid) && 
     1368      !sensors_get_feature(*name,SENSORS_LM87_FAN1,&cur) && 
     1369      !sensors_get_feature(*name,SENSORS_LM87_FAN1_DIV,&fdiv) && 
     1370      !sensors_get_feature(*name,SENSORS_LM87_FAN1_MIN,&min)) { 
     1371    if (valid) { 
     1372      print_label(label,10); 
     1373      printf("%4.0f RPM  (min = %4.0f RPM, div = %1.0f)          %s\n", 
     1374             cur,min,fdiv, alarms&LM87_ALARM_FAN1?"ALARM":""); 
     1375    } 
     1376  } else 
     1377    printf("ERROR: Can't get FAN1 data!\n"); 
     1378  free_the_label(&label); 
     1379  if (!sensors_get_label_and_valid(*name,SENSORS_LM87_FAN2,&label,&valid) && 
     1380      !sensors_get_feature(*name,SENSORS_LM87_FAN2,&cur) && 
     1381      !sensors_get_feature(*name,SENSORS_LM87_FAN2_DIV,&fdiv) && 
     1382      !sensors_get_feature(*name,SENSORS_LM87_FAN2_MIN,&min)) { 
     1383    if (valid) { 
     1384      print_label(label,10); 
     1385      printf("%4.0f RPM  (min = %4.0f RPM, div = %1.0f)          %s\n", 
     1386             cur,min,fdiv, alarms&LM87_ALARM_FAN2 ?"ALARM":""); 
     1387    } 
     1388  } else 
     1389    printf("ERROR: Can't get FAN2 data!\n"); 
     1390  free_the_label(&label); 
     1391 
     1392  if (!sensors_get_label_and_valid(*name,SENSORS_LM87_TEMP1,&label,&valid) && 
     1393      !sensors_get_feature(*name,SENSORS_LM87_TEMP1,&cur) && 
     1394      !sensors_get_feature(*name,SENSORS_LM87_TEMP1_HYST,&min) && 
     1395      !sensors_get_feature(*name,SENSORS_LM87_TEMP1_OVER,&max)) { 
     1396    if (valid) { 
     1397      print_label(label,10); 
     1398      print_temp_info( cur, max, min, MINMAX ); 
     1399      printf(" %s\n", alarms&LM87_ALARM_TEMP1?"ALARM":""); 
     1400    } 
     1401  } else 
     1402    printf("ERROR: Can't get TEMP1 data!\n"); 
     1403  free_the_label(&label); 
     1404 
     1405  if (!sensors_get_label_and_valid(*name,SENSORS_LM87_TEMP2,&label,&valid) && 
     1406      !sensors_get_feature(*name,SENSORS_LM87_TEMP2,&cur) && 
     1407      !sensors_get_feature(*name,SENSORS_LM87_TEMP2_HYST,&min) && 
     1408      !sensors_get_feature(*name,SENSORS_LM87_TEMP2_OVER,&max)) { 
     1409    if (valid) { 
     1410      print_label(label,10); 
     1411      print_temp_info( cur, max, min, MINMAX ); 
     1412      printf(" %s\n", alarms&LM87_ALARM_TEMP2?"ALARM":""); 
     1413    } 
     1414  } else 
     1415    printf("ERROR: Can't get TEMP2 data!\n"); 
     1416  free_the_label(&label); 
     1417 
     1418  if (!sensors_get_label_and_valid(*name,SENSORS_LM87_TEMP3,&label,&valid) && 
     1419      !sensors_get_feature(*name,SENSORS_LM87_TEMP3,&cur) && 
     1420      !sensors_get_feature(*name,SENSORS_LM87_TEMP3_HYST,&min) && 
     1421      !sensors_get_feature(*name,SENSORS_LM87_TEMP3_OVER,&max)) { 
     1422    if (valid) { 
     1423      print_label(label,10); 
     1424      print_temp_info( cur, max, min, MINMAX ); 
     1425      printf(" %s\n", alarms&LM87_ALARM_TEMP3?"ALARM":""); 
     1426    } 
     1427  } else 
     1428    printf("ERROR: Can't get TEMP3 data!\n"); 
     1429  free_the_label(&label); 
     1430 
     1431  if (!sensors_get_label_and_valid(*name,SENSORS_LM87_VID,&label,&valid) && 
     1432      !sensors_get_feature(*name,SENSORS_LM87_VID,&cur)) { 
     1433    if (valid) { 
     1434      print_label(label,10); 
     1435      printf("%+6.2f V\n",cur); 
    12751436    } 
    12761437  } 
  • lm-sensors/trunk/prog/sensors/main.c

    r945 r953  
    295295  else if (!strcmp(name.prefix,"lm80")) 
    296296    print_lm80(&name); 
     297  else if (!strcmp(name.prefix,"lm87")) 
     298    print_lm87(&name); 
    297299  else if (!strcmp(name.prefix,"gl518sm")) 
    298300    print_gl518(&name);