Changeset 1246

Show
Ignore:
Timestamp:
11/21/01 02:01:17 (7 years ago)
Author:
mds
Message:

add initial support for w83697hf to w83781d.

Similar to w83783s except no VID or fan3, and ISA only.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • lm-sensors/trunk/CHANGES

    r1244 r1246  
    1919 
    20202.6.3 (2001????) 
    21   Library: Add PCF8591 support 
     21  Library: Add PCF8591 and W83697HF support 
    2222  Module pcf8591: new 
     23  Module w83781d: Add W83697HF support 
    2324  Program i2cdump: Add i2c block read capability 
    24   Program sensors: Add PCF8591 support 
     25  Program sensors: Add PCF8591 and W83697HF support 
    2526  Program sensors-detect: Add several Nvidia chips, add PCF8591 
    2627 
  • lm-sensors/trunk/README

    r1243 r1246  
    6767  TI THMC10 and THMC50 
    6868  VIA Technologies VT82C686A/B embedded sensors 
    69   Winbond W83781D, W83782D, W83783S, and W83627HF 
     69  Winbond W83781D, W83782D, W83783S, W83627HF, and W83697HF 
    7070 
    7171 
  • lm-sensors/trunk/doc/chips/SUMMARY

    r1243 r1246  
    130130        w83783s         1-2     5-6     3       2 pwm   yes     no 
    131131        w83627hf        3       9       3       2 pwm   yes     yes (LPC) 
     132        w83697hf        2       6       23      2 pwm   no      yes 
    132133 
    133134 
  • lm-sensors/trunk/doc/chips/w83781d

    r1209 r1246  
    66        W83783S support is complete but has not been well-tested. 
    77        W83627HF support is complete but has not been well-tested. 
     8        W83697HF support is complete but has not been well-tested. 
    89        AS99127F support is BETA and has known problems due to lack of a 
    910                 chip datasheet. SEE BELOW. 
     
    2526    Prefix 'w83627hf' 
    2627    Addresses scanned: I2C 0x20 - 0x2f (inclusive), ISA 0x290 (8 I/O ports) 
     28    Datasheet: Publicly available at the Winbond website 
     29  * Winbond W83697HF 
     30    Prefix 'w83697hf' 
     31    Addresses scanned: ISA 0x290 (8 I/O ports) 
    2732    Datasheet: Publicly available at the Winbond website 
    2833  * Asus AS99127F 
  • lm-sensors/trunk/etc/sensors.conf.eg

    r1243 r1246  
    344344#    set temp_hyst 37    
    345345 
    346 chip "w83782d-*" "w83783s-*" "w83627hf-*" 
     346chip "w83782d-*" "w83783s-*" "w83627hf-*" "w83697hf-*" 
    347347 
    348348# Same as above for w83781d except that in5 and in6 are computed differently. 
  • lm-sensors/trunk/kernel/chips/w83781d.c

    r1209 r1246  
    22    w83781d.c - Part of lm_sensors, Linux kernel modules for hardware 
    33                monitoring 
    4     Copyright (c) 1998, 1999, 2000  Frodo Looijaard <frodol@dds.nl>, 
     4    Copyright (c) 1998 - 2001  Frodo Looijaard <frodol@dds.nl>, 
    55    Philip Edelbrock <phil@netroedge.com>, 
    66    and Mark Studebaker <mdsxyz123@yahoo.com> 
     
    3030    w83782d     9       3       2-4     3       0x30    0x5ca3  yes     yes 
    3131    w83783s     5-6     3       2       1-2     0x40    0x5ca3  yes     no 
     32    w83697hf    6       2       2       2       0x60    0x5ca3  no      yes(LPC) 
    3233 
    3334*/ 
     
    4748#include <linux/init.h> 
    4849 
    49 #ifdef MODULE_LICENSE 
    50 MODULE_LICENSE("GPL"); 
    51 #endif 
    52  
    5350#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,2,18)) || \ 
    5451    (LINUX_VERSION_CODE == KERNEL_VERSION(2,3,0)) 
     
    7067 
    7168/* Insmod parameters */ 
    72 SENSORS_INSMOD_5(w83781d, w83782d, w83783s, w83627hf, as99127f); 
     69SENSORS_INSMOD_6(w83781d, w83782d, w83783s, w83627hf, as99127f, w83697hf); 
    7370 
    7471static int init = 1; 
     
    7673MODULE_PARM_DESC(init, "Set to zero to bypass chip initialization"); 
    7774 
    78 /* Many W83781D constants specified below */ 
     75/* Constants specified below */ 
    7976 
    8077/* Length of ISA address segment */ 
     
    694691}; 
    695692 
     693/* similar to w83783s but no fan3, no vid */ 
     694static ctl_table w83697hf_dir_table_template[] = { 
     695        {W83781D_SYSCTL_IN0, "in0", NULL, 0, 0644, NULL, &i2c_proc_real, 
     696         &i2c_sysctl_real, NULL, &w83781d_in}, 
     697        /* no in1 to maintain compatibility with 781d and 782d. */ 
     698        {W83781D_SYSCTL_IN2, "in2", NULL, 0, 0644, NULL, &i2c_proc_real, 
     699         &i2c_sysctl_real, NULL, &w83781d_in}, 
     700        {W83781D_SYSCTL_IN3, "in3", NULL, 0, 0644, NULL, &i2c_proc_real, 
     701         &i2c_sysctl_real, NULL, &w83781d_in}, 
     702        {W83781D_SYSCTL_IN4, "in4", NULL, 0, 0644, NULL, &i2c_proc_real, 
     703         &i2c_sysctl_real, NULL, &w83781d_in}, 
     704        {W83781D_SYSCTL_IN5, "in5", NULL, 0, 0644, NULL, &i2c_proc_real, 
     705         &i2c_sysctl_real, NULL, &w83781d_in}, 
     706        {W83781D_SYSCTL_IN6, "in6", NULL, 0, 0644, NULL, &i2c_proc_real, 
     707         &i2c_sysctl_real, NULL, &w83781d_in}, 
     708        {W83781D_SYSCTL_FAN1, "fan1", NULL, 0, 0644, NULL, &i2c_proc_real, 
     709         &i2c_sysctl_real, NULL, &w83781d_fan}, 
     710        {W83781D_SYSCTL_FAN2, "fan2", NULL, 0, 0644, NULL, &i2c_proc_real, 
     711         &i2c_sysctl_real, NULL, &w83781d_fan}, 
     712        {W83781D_SYSCTL_TEMP1, "temp1", NULL, 0, 0644, NULL, &i2c_proc_real, 
     713         &i2c_sysctl_real, NULL, &w83781d_temp}, 
     714        {W83781D_SYSCTL_TEMP2, "temp2", NULL, 0, 0644, NULL, &i2c_proc_real, 
     715         &i2c_sysctl_real, NULL, &w83781d_temp_add}, 
     716        {W83781D_SYSCTL_FAN_DIV, "fan_div", NULL, 0, 0644, NULL, &i2c_proc_real, 
     717         &i2c_sysctl_real, NULL, &w83781d_fan_div}, 
     718        {W83781D_SYSCTL_ALARMS, "alarms", NULL, 0, 0444, NULL, &i2c_proc_real, 
     719         &i2c_sysctl_real, NULL, &w83781d_alarms}, 
     720        {W83781D_SYSCTL_BEEP, "beep", NULL, 0, 0644, NULL, &i2c_proc_real, 
     721         &i2c_sysctl_real, NULL, &w83781d_beep}, 
     722        {W83781D_SYSCTL_PWM1, "pwm1", NULL, 0, 0644, NULL, &i2c_proc_real, 
     723         &i2c_sysctl_real, NULL, &w83781d_pwm}, 
     724        {W83781D_SYSCTL_PWM2, "pwm2", NULL, 0, 0644, NULL, &i2c_proc_real, 
     725         &i2c_sysctl_real, NULL, &w83781d_pwm}, 
     726        {W83781D_SYSCTL_SENS1, "sensor1", NULL, 0, 0644, NULL, &i2c_proc_real, 
     727         &i2c_sysctl_real, NULL, &w83781d_sens}, 
     728        {W83781D_SYSCTL_SENS2, "sensor2", NULL, 0, 0644, NULL, &i2c_proc_real, 
     729         &i2c_sysctl_real, NULL, &w83781d_sens}, 
     730        {0} 
     731}; 
     732 
    696733 
    697734/* This function is called when: 
     
    828865                else if (val1 == 0x30 && vendid == asus && !is_isa) 
    829866                        kind = as99127f; 
     867                else if (val1 == 0x60 && vendid == winbond && is_isa) 
     868                        kind = w83697hf; 
    830869                else { 
    831870                        if (kind == 0) 
    832871                                printk 
    833                                     ("w83781d.o: Ignoring 'force' parameter for unknown chip at" 
     872                                    (KERN_WARNING "w83781d.o: Ignoring 'force' parameter for unknown chip at" 
    834873                                     "adapter %d, address 0x%02x\n", 
    835874                                     i2c_adapter_id(adapter), address); 
     
    853892                type_name = "as99127f"; 
    854893                client_name = "AS99127F chip"; 
     894        } else if (kind == w83697hf) { 
     895                type_name = "w83697hf"; 
     896                client_name = "W83697HF chip"; 
    855897        } else { 
    856898#ifdef DEBUG 
    857                 printk("w83781d.o: Internal error: unknown kind (%d)?!?", 
     899                printk(KERN_ERR "w83781d.o: Internal error: unknown kind (%d)?!?", 
    858900                       kind); 
    859901#endif 
     
    890932                        data->lm75[1].addr = 0x48 + ((val1 >> 4) & 0x07); 
    891933                        if(data->lm75[0].addr == data->lm75[1].addr) { 
    892                                 printk("w83781d.o: Duplicate addresses 0x%x for subclients.\n", 
     934                                printk(KERN_ERR "w83781d.o: Duplicate addresses 0x%x for subclients.\n", 
    893935                                        data->lm75[0].addr); 
    894936                                goto ERROR5; 
     
    914956                        data->lm75[i].id = w83781d_id++; 
    915957                        if ((err = i2c_attach_client(&(data->lm75[i])))) { 
    916                                 printk("w83781d.o: Subclient %d registration at address 0x%x failed.\n", 
     958                                printk(KERN_ERR "w83781d.o: Subclient %d registration at address 0x%x failed.\n", 
    917959                                       i, data->lm75[i].addr); 
    918960                                if (i == 1) 
     
    931973        if ((i = i2c_register_entry(new_client, 
    932974                                        type_name, 
    933                                         kind == as99127f
     975                                        (kind == as99127f)
    934976                                           as99127f_dir_table_template : 
    935                                         kind == w83781d
     977                                        (kind == w83781d)
    936978                                           w83781d_dir_table_template : 
    937                                         kind == w83783s
     979                                        (kind == w83783s)
    938980                                           w83783s_dir_table_template : 
     981                                        (kind == w83697hf) ? 
     982                                           w83697hf_dir_table_template : 
    939983                                        (is_isa || kind == w83627hf) ? 
    940984                                           w83782d_isa_dir_table_template : 
     
    9881032        if ((err = i2c_detach_client(client))) { 
    9891033                printk 
    990                     ("w83781d.o: Client deregistration failed, client not detached.\n"); 
     1034                    (KERN_ERR "w83781d.o: Client deregistration failed, client not detached.\n"); 
    9911035                return err; 
    9921036        } 
     
    12101254        } 
    12111255 
    1212         vid = w83781d_read_value(client, W83781D_REG_VID_FANDIV) & 0x0f; 
    1213         vid |= 
    1214             (w83781d_read_value(client, W83781D_REG_CHIPID) & 0x01) << 4; 
    1215         vid = VID_FROM_REG(vid); 
     1256        if (type != w83697hf) { 
     1257                vid = w83781d_read_value(client, W83781D_REG_VID_FANDIV) & 0x0f; 
     1258                vid |= 
     1259                    (w83781d_read_value(client, W83781D_REG_CHIPID) & 0x01) << 4; 
     1260                vid = VID_FROM_REG(vid); 
     1261        } 
    12161262 
    12171263        if ((type != w83781d) && (type != as99127f)) { 
     
    12281274                                        data->sens[i - 1] = 2; 
    12291275                        } 
    1230                         if ((type == w83783s) && (i == 2)) 
     1276                        if ((type == w83783s || type == w83697hf) && (i == 2)) 
    12311277                                break; 
    12321278                } 
     
    12661312                w83781d_write_value(client, W83781D_REG_IN_MAX(0), 
    12671313                                    IN_TO_REG(W83781D_INIT_IN_MAX_0)); 
    1268                 if (type != w83783s) { 
     1314                if (type != w83783s && type != w83697hf) { 
    12691315                        w83781d_write_value(client, W83781D_REG_IN_MIN(1), 
    12701316                                            IN_TO_REG(W83781D_INIT_IN_MIN_1)); 
     
    13231369                w83781d_write_value(client, W83781D_REG_FAN_MIN(2), 
    13241370                                    FAN_TO_REG(W83781D_INIT_FAN_MIN_2, 2)); 
    1325                 w83781d_write_value(client, W83781D_REG_FAN_MIN(3), 
     1371                if (type != w83697hf) { 
     1372                        w83781d_write_value(client, W83781D_REG_FAN_MIN(3), 
    13261373                                    FAN_TO_REG(W83781D_INIT_FAN_MIN_3, 2)); 
     1374                } 
    13271375 
    13281376                w83781d_write_value(client, W83781D_REG_TEMP_OVER, 
     
    13551403                                            AS99127_TEMP_ADD_TO_REG 
    13561404                                            (W83781D_INIT_TEMP3_HYST)); 
    1357                 } else if (type != w83783s) { 
     1405                } else if (type != w83783s && type != w83697hf) { 
    13581406                        w83781d_write_value(client, W83781D_REG_TEMP3_OVER, 
    13591407                                            TEMP_ADD_TO_REG 
     
    13631411                                            (W83781D_INIT_TEMP3_HYST)); 
    13641412                } 
    1365                 if (type != w83783s) { 
     1413                if (type != w83783s && type != w83697hf) { 
    13661414                        w83781d_write_value(client, W83781D_REG_TEMP3_CONFIG, 
    13671415                                            0x00); 
     
    13921440 
    13931441#ifdef DEBUG 
    1394                 printk("Starting w83781d update\n"); 
     1442                printk(KERN_DEBUG "Starting device update\n"); 
    13951443#endif 
    13961444                for (i = 0; i <= 8; i++) { 
    1397                         if ((data->type == w83783s) && (i == 1)) 
     1445                        if ((data->type == w83783s || data->type == w83697hf) 
     1446                            && (i == 1)) 
    13981447                                continue;       /* 783S has no in1 */ 
    13991448                        data->in[i] = 
     
    14241473                                     || (data->type == w83627hf) 
    14251474                                     || (data->type == as99127f) 
     1475                                     || (data->type == w83697hf) 
    14261476                                     || ((data->type == w83782d) 
    14271477                                        && i2c_is_isa_client(client))) 
     
    14421492                data->temp_add_hyst[0] = 
    14431493                    w83781d_read_value(client, W83781D_REG_TEMP2_HYST); 
    1444                 if (data->type != w83783s) { 
     1494                if (data->type != w83783s && data->type != w83697hf) { 
    14451495                        data->temp_add[1] = 
    14461496                            w83781d_read_value(client, W83781D_REG_TEMP3); 
     
    14511501                } 
    14521502                i = w83781d_read_value(client, W83781D_REG_VID_FANDIV); 
    1453                 data->vid = i & 0x0f; 
    1454                 data->vid |= 
    1455                     (w83781d_read_value(client, W83781D_REG_CHIPID) & 0x01) 
    1456                     << 4; 
     1503                if (data->type != w83697hf) { 
     1504                        data->vid = i & 0x0f; 
     1505                        data->vid |= 
     1506                            (w83781d_read_value(client, W83781D_REG_CHIPID) & 0x01) 
     1507                            << 4; 
     1508                } 
    14571509                data->fan_div[0] = (i >> 4) & 0x03; 
    14581510                data->fan_div[1] = (i >> 6) & 0x03; 
    1459                 data->fan_div[2] = (w83781d_read_value(client, 
    1460                                                        W83781D_REG_PIN) >> 
    1461                                     6) & 0x03; 
     1511                if (data->type != w83697hf) { 
     1512                        data->fan_div[2] = (w83781d_read_value(client, 
     1513                                               W83781D_REG_PIN) >> 6) & 0x03; 
     1514                } 
    14621515                if ((data->type != w83781d) && (data->type != as99127f)) { 
    14631516                        i = w83781d_read_value(client, W83781D_REG_VBAT); 
    14641517                        data->fan_div[0] |= (i >> 3) & 0x04; 
    14651518                        data->fan_div[1] |= (i >> 4) & 0x04; 
    1466                         data->fan_div[2] |= (i >> 5) & 0x04; 
     1519                        if (data->type != w83697hf) 
     1520                                data->fan_div[2] |= (i >> 5) & 0x04; 
    14671521                } 
    14681522                data->alarms = 
     
    17071761} 
    17081762 
     1763/* w83697hf only has two fans */ 
    17091764void w83781d_fan_div(struct i2c_client *client, int operation, 
    17101765                     int ctl_name, int *nrels_mag, long *results) 
     
    17191774                results[0] = DIV_FROM_REG(data->fan_div[0]); 
    17201775                results[1] = DIV_FROM_REG(data->fan_div[1]); 
    1721                 results[2] = DIV_FROM_REG(data->fan_div[2]); 
    1722                 *nrels_mag = 3; 
     1776                if (data->type == w83697hf) { 
     1777                        *nrels_mag = 2; 
     1778                } else { 
     1779                        results[2] = DIV_FROM_REG(data->fan_div[2]); 
     1780                        *nrels_mag = 3; 
     1781                } 
    17231782        } else if (operation == SENSORS_PROC_REAL_WRITE) { 
    17241783                old = w83781d_read_value(client, W83781D_REG_VID_FANDIV); 
     
    17281787                            w83781d_read_value(client, W83781D_REG_VBAT); 
    17291788                } 
    1730                 if (*nrels_mag >= 3) { 
     1789                if (*nrels_mag >= 3 && data->type != w83697hf) { 
    17311790                        data->fan_div[2] = 
    17321791                            DIV_TO_REG(results[2], data->type); 
     
    18511910                        default: 
    18521911                                printk 
    1853                                     ("w83781d.o: Invalid sensor type %ld; must be 1, 2, or %d\n", 
     1912                                    (KERN_ERR "w83781d.o: Invalid sensor type %ld; must be 1, 2, or %d\n", 
    18541913                                     results[0], W83781D_DEFAULT_BETA); 
    18551914                                break; 
     
    18921951        int res; 
    18931952 
    1894         printk("w83781d.o version %s (%s)\n", LM_VERSION, LM_DATE); 
     1953        printk(KERN_INFO "w83781d.o version %s (%s)\n", LM_VERSION, LM_DATE); 
    18951954        w83781d_initialized = 0; 
    18961955 
    18971956        if ((res = i2c_add_driver(&w83781d_driver))) { 
    18981957                printk 
    1899                     ("w83781d.o: Driver registration failed, module not inserted.\n"); 
     1958                    (KERN_ERR "w83781d.o: Driver registration failed, module not inserted.\n"); 
    19001959                w83781d_cleanup(); 
    19011960                return res; 
     
    19121971                if ((res = i2c_del_driver(&w83781d_driver))) { 
    19131972                        printk 
    1914                             ("w83781d.o: Driver deregistration failed, module not removed.\n"); 
     1973                            (KERN_ERR "w83781d.o: Driver deregistration failed, module not removed.\n"); 
    19151974                        return res; 
    19161975                } 
     
    19281987              "and Mark Studebaker <mdsxyz123@yahoo.com>"); 
    19291988MODULE_DESCRIPTION("W83781D driver"); 
     1989#ifdef MODULE_LICENSE 
     1990MODULE_LICENSE("GPL"); 
     1991#endif 
     1992 
    19301993 
    19311994int init_module(void) 
  • lm-sensors/trunk/lib/chips.c

    r1243 r1246  
    24862486 { SENSORS_W83782D_PREFIX, w83782d_features }, 
    24872487 { SENSORS_W83783S_PREFIX, w83783s_features }, 
     2488 { SENSORS_W83697HF_PREFIX, w83783s_features }, /* same as 783s */ 
    24882489                /* Cheat on 83627HF for now - no separate #defines */ 
    24892490 { SENSORS_W83627HF_PREFIX, w83782d_features }, 
  • lm-sensors/trunk/lib/chips.h

    r1243 r1246  
    432432 
    433433/* Winbond W83783S chips */ 
     434/* Cheat on 697HF for now - no separate #defines */ 
    434435 
    435436#define SENSORS_W83783S_PREFIX "w83783s" 
     437#define SENSORS_W83697HF_PREFIX "w83697hf" 
    436438 
    437439#define SENSORS_W83783S_IN0 1 /* R */ 
  • lm-sensors/trunk/prog/detect/sensors-detect

    r1243 r1246  
    646646     { 
    647647       name => "Winbond W83697HF", 
    648        driver => "Unwritten (W83697HF)", 
     648       driver => "w83781d", 
    649649       isa_addrs => [0x290], 
    650650       isa_detect => sub { w83781d_isa_detect 5, @_ }, 
  • lm-sensors/trunk/prog/sensors/chips.c

    r1243 r1246  
    18171817  double cur,min,max,fdiv,sens; 
    18181818  int alarms,beeps; 
    1819   int is82d, is83s,valid; 
     1819  int is82d, is83s, is697hf, valid; 
    18201820 
    18211821  is82d = (!strcmp(name->prefix,"w83782d")) || 
    18221822          (!strcmp(name->prefix,"w83627hf")); 
    18231823  is83s = !strcmp(name->prefix,"w83783s"); 
     1824  is697hf = !strcmp(name->prefix,"w83697hf"); 
    18241825  if (!sensors_get_feature(*name,SENSORS_W83781D_ALARMS,&cur))  
    18251826    alarms = cur + 0.5; 
     
    18521853    printf("ERROR: Can't get IN0 data!\n"); 
    18531854  free_the_label(&label); 
    1854   if (!is83s) { 
     1855  if ((!is83s) && (!is697hf)) { 
    18551856    if (!sensors_get_label_and_valid(*name,SENSORS_W83781D_IN1,&label,&valid) && 
    18561857        !sensors_get_feature(*name,SENSORS_W83781D_IN1,&cur) && 
     
    19191920    printf("ERROR: Can't get IN5 data!\n"); 
    19201921  free_the_label(&label); 
    1921   if (!is83s) { 
     1922  if ((!is83s) && (!is697hf)) { 
    19221923    if (!sensors_get_label_and_valid(*name,SENSORS_W83781D_IN6,&label,&valid) && 
    19231924        !sensors_get_feature(*name,SENSORS_W83781D_IN6,&cur) && 
     
    19891990    printf("ERROR: Can't get FAN2 data!\n"); 
    19901991  free_the_label(&label); 
    1991   if (!sensors_get_label_and_valid(*name,SENSORS_W83781D_FAN3,&label,&valid) && 
    1992       !sensors_get_feature(*name,SENSORS_W83781D_FAN3,&cur) && 
    1993       !sensors_get_feature(*name,SENSORS_W83781D_FAN3_DIV,&fdiv) && 
    1994       !sensors_get_feature(*name,SENSORS_W83781D_FAN3_MIN,&min)) { 
    1995     if (valid) { 
    1996       print_label(label,10); 
    1997       printf("%4.0f RPM  (min = %4.0f RPM, div = %1.0f)              %s  %s\n", 
    1998            cur,min,fdiv, alarms&W83781D_ALARM_FAN3?"ALARM":"     ", 
    1999            beeps&W83781D_ALARM_FAN3?"(beep)":""); 
    2000     } 
    2001   } else 
    2002     printf("ERROR: Can't get FAN3 data!\n"); 
    2003   free_the_label(&label); 
     1992 
     1993  if(!is697hf) { 
     1994    if (!sensors_get_label_and_valid(*name,SENSORS_W83781D_FAN3,&label,&valid) && 
     1995        !sensors_get_feature(*name,SENSORS_W83781D_FAN3,&cur) && 
     1996        !sensors_get_feature(*name,SENSORS_W83781D_FAN3_DIV,&fdiv) && 
     1997        !sensors_get_feature(*name,SENSORS_W83781D_FAN3_MIN,&min)) { 
     1998      if (valid) { 
     1999        print_label(label,10); 
     2000        printf("%4.0f RPM  (min = %4.0f RPM, div = %1.0f)              %s  %s\n", 
     2001             cur,min,fdiv, alarms&W83781D_ALARM_FAN3?"ALARM":"     ", 
     2002             beeps&W83781D_ALARM_FAN3?"(beep)":""); 
     2003      } 
     2004    } else 
     2005      printf("ERROR: Can't get FAN3 data!\n"); 
     2006    free_the_label(&label); 
     2007  } 
    20042008 
    20052009  if (!sensors_get_label_and_valid(*name,SENSORS_W83781D_TEMP1,&label,&valid) && 
     
    20082012      !sensors_get_feature(*name,SENSORS_W83781D_TEMP1_OVER,&max)) { 
    20092013    if (valid) { 
    2010       if((!is82d) && (!is83s)) { 
     2014      if((!is82d) && (!is83s) && (!is697hf)) { 
    20112015        print_label(label,10); 
    20122016        print_temp_info( cur, max, min, HYST, 0, 0); 
     
    20362040      !sensors_get_feature(*name,SENSORS_W83781D_TEMP2_OVER,&max)) { 
    20372041    if (valid) { 
    2038       if((!is82d) && (!is83s)) { 
     2042      if((!is82d) && (!is83s) && (!is697hf)) { 
    20392043        print_label(label,10); 
    20402044        print_temp_info( cur, max, min, HYST, 1, 0); 
     
    20592063  free_the_label(&label); 
    20602064 
    2061   if (!is83s) { 
     2065  if ((!is83s) && (!is697hf)) { 
    20622066    if (!sensors_get_label_and_valid(*name,SENSORS_W83781D_TEMP3,&label,&valid) && 
    20632067        !sensors_get_feature(*name,SENSORS_W83781D_TEMP3,&cur) && 
     
    20892093  } 
    20902094 
    2091   if (!sensors_get_label_and_valid(*name,SENSORS_W83781D_VID,&label,&valid) && 
    2092       !sensors_get_feature(*name,SENSORS_W83781D_VID,&cur)) { 
    2093     if (valid) { 
    2094       print_label(label,10); 
    2095       printf("%+5.2f V\n",cur); 
    2096     } 
    2097   } 
    2098   free_the_label(&label); 
     2095  if(!is697hf) { 
     2096    if (!sensors_get_label_and_valid(*name,SENSORS_W83781D_VID,&label,&valid) && 
     2097        !sensors_get_feature(*name,SENSORS_W83781D_VID,&cur)) { 
     2098      if (valid) { 
     2099        print_label(label,10); 
     2100        printf("%+5.2f V\n",cur); 
     2101      } 
     2102    } else { 
     2103      printf("ERROR: Can't get VID data!\n"); 
     2104    } 
     2105    free_the_label(&label); 
     2106  } 
    20992107     
    21002108  if (!sensors_get_label_and_valid(*name,SENSORS_W83781D_ALARMS,&label,&valid) 
  • lm-sensors/trunk/prog/sensors/main.c

    r1243 r1246  
    324324           (!strcmp(name.prefix,"w83783s")) || 
    325325           (!strcmp(name.prefix,"w83627hf")) || 
     326           (!strcmp(name.prefix,"w83697hf")) || 
    326327           (!strcmp(name.prefix,"as99127f"))) 
    327328    print_w83781d(&name);