From 687fb60ff4a654f266ec5a9bc9503207d49c2753 Mon Sep 17 00:00:00 2001 From: Jean Delvare Date: Fri, 23 Jul 2004 17:35:19 +0000 Subject: [PATCH] Support 2.6 smsc47m1 better. git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@2642 7894878c-1315-0410-8ee3-d5d059ff63e0 --- etc/sensors.conf.eg | 12 ++++++++---- prog/sensors/chips.c | 45 ++++++++++++++++++-------------------------- 2 files changed, 26 insertions(+), 31 deletions(-) diff --git a/etc/sensors.conf.eg b/etc/sensors.conf.eg index f6a18329..3d2b082a 100644 --- a/etc/sensors.conf.eg +++ b/etc/sensors.conf.eg @@ -1910,12 +1910,16 @@ chip "bmc-*" # label temp1 "Ambient Temp" - -# chip "smsc47m1-*" - set fan1_min 3000 - set fan2_min 3000 +# SMSC LPC47M10x, LPC47M13x, LPC47M14x and LPC47B27x chips + +# We don't set the fan mins by default anymore because they may not exist +# when using the Linux 2.6 driver (since we respect the original chip +# configuration). +# set fan1_min 3000 +# set fan2_min 3000 + # # This example was tested vs. Asus P4S333 diff --git a/prog/sensors/chips.c b/prog/sensors/chips.c index 8944c2a4..d0a178aa 100644 --- a/prog/sensors/chips.c +++ b/prog/sensors/chips.c @@ -3885,8 +3885,8 @@ void print_vt1211(const sensors_chip_name *name) void print_smsc47m1(const sensors_chip_name *name) { char *label = NULL; - double cur,min,fdiv; - int alarms,valid; + double cur, min, div; + int alarms, valid, i; if (!sensors_get_feature(*name,SENSORS_SMSC47M1_ALARMS,&cur)) alarms = cur + 0.5; @@ -3895,32 +3895,23 @@ void print_smsc47m1(const sensors_chip_name *name) alarms = 0; } - if (!sensors_get_label_and_valid(*name,SENSORS_SMSC47M1_FAN1,&label,&valid) && - !sensors_get_feature(*name,SENSORS_SMSC47M1_FAN1,&cur) && - !sensors_get_feature(*name,SENSORS_SMSC47M1_FAN1_DIV,&fdiv) && - !sensors_get_feature(*name,SENSORS_SMSC47M1_FAN1_MIN,&min)) { - if (valid) { - print_label(label,10); - printf("%4.0f RPM (min = %4.0f RPM, div = %1.0f) %s\n", - cur,min,fdiv, alarms&SMSC47M1_ALARM_FAN1?"ALARM":""); + for (i=0; i<2; i++) { /* 2 fans */ + if (!sensors_get_label_and_valid(*name, SENSORS_SMSC47M1_FAN1+i, &label, &valid) + && !sensors_get_feature(*name, SENSORS_SMSC47M1_FAN1+i, &cur) + && !sensors_get_feature(*name, SENSORS_SMSC47M1_FAN1_DIV+i, &div) + && !sensors_get_feature(*name, SENSORS_SMSC47M1_FAN1_MIN+i, &min)) { + if (valid) { + print_label(label, 10); + printf("%4.0f RPM (min = %4.0f RPM, div = %1.0f) %s\n", + cur, min, div, alarms&(SMSC47M1_ALARM_FAN1<