diff --git a/CHANGES b/CHANGES index 013e9636..51ab3b75 100644 --- a/CHANGES +++ b/CHANGES @@ -17,7 +17,7 @@ ask CVS about it: ----------------------------------------------------------------------------- -2.6.6 (2002????) +2.6.6 (20021???) NOTE: Requires i2c-2.6.6 or newer. File doc/busses/i2c-ali1535: Add license, miscellaneous changes File doc/busses/i2c-ali15x3: Add license, miscellaneous changes @@ -28,7 +28,7 @@ ask CVS about it: File doc/chips/vt8231: Add license, parameters File sensors.conf.eg: Add section for lm75; complete the lm78 section Library: Add support for MC1066; add multiple VRM version support for lm87; - enhance adm1023 support + enhance adm1023 support; initial support for Sony Vaio eeprom Makefile: Take kernel source location from /lib/modules/x.x.x/build Module adm1021: Add support for MC1066 Module bmcsensors: New @@ -54,7 +54,8 @@ ask CVS about it: Program lm_sensors.init: Remove spaces bug; add green/red output Program mkpatch: Fix dmi_scan module compile Program sensors: Add support for MC1066, Rambus Rimms; - fix w83781d temp3 alarm; fix gl518sm rev 0x00 recognition + fix w83781d temp3 alarm; fix gl518sm rev 0x00 recognition; + initial support for Sony Vaio eeprom Program sensors-detect: Add support for MC1066, smart battery; add ACPI method for IBM system detection; work with old Perl versions again diff --git a/lib/chips.c b/lib/chips.c index b6179a01..0bfeca5b 100644 --- a/lib/chips.c +++ b/lib/chips.c @@ -2060,6 +2060,199 @@ static sensors_chip_feature eeprom_features[] = { SENSORS_EEPROM_BANKS, "banks", SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, SENSORS_MODE_R, EEPROM_SYSCTL2, VALUE(2), 0 }, +/* for Sony Vaio's eeproms */ + { SENSORS_EEPROM_VAIO_NAME, "Machine name", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL9, VALUE(1), 0 }, + { SENSORS_EEPROM_VAIO_NAME+1, "name2", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL9, VALUE(2), 0 }, + { SENSORS_EEPROM_VAIO_NAME+2, "name3", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL9, VALUE(3), 0 }, + { SENSORS_EEPROM_VAIO_NAME+3, "name4", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL9, VALUE(4), 0 }, + { SENSORS_EEPROM_VAIO_NAME+4, "name5", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL9, VALUE(5), 0 }, + { SENSORS_EEPROM_VAIO_NAME+5, "name6", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL9, VALUE(6), 0 }, + { SENSORS_EEPROM_VAIO_NAME+6, "name7", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL9, VALUE(7), 0 }, + { SENSORS_EEPROM_VAIO_NAME+7, "name8", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL9, VALUE(8), 0 }, + { SENSORS_EEPROM_VAIO_NAME+8, "name9", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL9, VALUE(9), 0 }, + { SENSORS_EEPROM_VAIO_NAME+9, "name10", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL9, VALUE(10), 0 }, + { SENSORS_EEPROM_VAIO_NAME+10, "name11", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL9, VALUE(11), 0 }, + { SENSORS_EEPROM_VAIO_NAME+11, "name12", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL9, VALUE(12), 0 }, + { SENSORS_EEPROM_VAIO_NAME+12, "name13", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL9, VALUE(13), 0 }, + { SENSORS_EEPROM_VAIO_NAME+13, "name14", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL9, VALUE(14), 0 }, + { SENSORS_EEPROM_VAIO_NAME+14, "name15", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL9, VALUE(15), 0 }, + { SENSORS_EEPROM_VAIO_NAME+15, "name16", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL9, VALUE(16), 0 }, + { SENSORS_EEPROM_VAIO_NAME+16, "name17", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL10, VALUE(1), 0 }, + { SENSORS_EEPROM_VAIO_NAME+17, "name18", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL10, VALUE(2), 0 }, + { SENSORS_EEPROM_VAIO_NAME+18, "name19", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL10, VALUE(3), 0 }, + { SENSORS_EEPROM_VAIO_NAME+19, "name20", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL10, VALUE(4), 0 }, + { SENSORS_EEPROM_VAIO_NAME+20, "name21", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL10, VALUE(5), 0 }, + { SENSORS_EEPROM_VAIO_NAME+21, "name22", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL10, VALUE(6), 0 }, + { SENSORS_EEPROM_VAIO_NAME+22, "name23", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL10, VALUE(7), 0 }, + { SENSORS_EEPROM_VAIO_NAME+23, "name24", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL10, VALUE(8), 0 }, + { SENSORS_EEPROM_VAIO_NAME+24, "name25", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL10, VALUE(9), 0 }, + { SENSORS_EEPROM_VAIO_NAME+25, "name26", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL10, VALUE(10), 0 }, + { SENSORS_EEPROM_VAIO_NAME+26, "name27", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL10, VALUE(11), 0 }, + { SENSORS_EEPROM_VAIO_NAME+27, "name28", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL10, VALUE(12), 0 }, + { SENSORS_EEPROM_VAIO_NAME+28, "name29", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL10, VALUE(13), 0 }, + { SENSORS_EEPROM_VAIO_NAME+29, "name30", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL10, VALUE(14), 0 }, + { SENSORS_EEPROM_VAIO_NAME+30, "name31", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL10, VALUE(15), 0 }, + { SENSORS_EEPROM_VAIO_NAME+31, "name32", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL10, VALUE(16), 0 }, + { SENSORS_EEPROM_VAIO_SERIAL, "Serial number", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL13, VALUE(1), 0 }, + { SENSORS_EEPROM_VAIO_SERIAL+1, "serial2", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL13, VALUE(2), 0 }, + { SENSORS_EEPROM_VAIO_SERIAL+2, "serial3", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL13, VALUE(3), 0 }, + { SENSORS_EEPROM_VAIO_SERIAL+3, "serial4", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL13, VALUE(4), 0 }, + { SENSORS_EEPROM_VAIO_SERIAL+4, "serial5", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL13, VALUE(5), 0 }, + { SENSORS_EEPROM_VAIO_SERIAL+5, "serial6", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL13, VALUE(6), 0 }, + { SENSORS_EEPROM_VAIO_SERIAL+6, "serial7", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL13, VALUE(7), 0 }, + { SENSORS_EEPROM_VAIO_SERIAL+7, "serial8", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL13, VALUE(8), 0 }, + { SENSORS_EEPROM_VAIO_SERIAL+8, "serial9", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL13, VALUE(9), 0 }, + { SENSORS_EEPROM_VAIO_SERIAL+9, "serial10", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL13, VALUE(10), 0 }, + { SENSORS_EEPROM_VAIO_SERIAL+10, "serial11", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL13, VALUE(11), 0 }, + { SENSORS_EEPROM_VAIO_SERIAL+11, "serial12", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL13, VALUE(12), 0 }, + { SENSORS_EEPROM_VAIO_SERIAL+12, "serial13", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL13, VALUE(13), 0 }, + { SENSORS_EEPROM_VAIO_SERIAL+13, "serial14", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL13, VALUE(14), 0 }, + { SENSORS_EEPROM_VAIO_SERIAL+14, "serial15", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL13, VALUE(15), 0 }, + { SENSORS_EEPROM_VAIO_SERIAL+15, "serial16", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL13, VALUE(16), 0 }, + { SENSORS_EEPROM_VAIO_SERIAL+16, "serial17", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL14, VALUE(1), 0 }, + { SENSORS_EEPROM_VAIO_SERIAL+17, "serial18", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL14, VALUE(2), 0 }, + { SENSORS_EEPROM_VAIO_SERIAL+18, "serial19", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL14, VALUE(3), 0 }, + { SENSORS_EEPROM_VAIO_SERIAL+19, "serial20", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL14, VALUE(4), 0 }, + { SENSORS_EEPROM_VAIO_SERIAL+20, "serial21", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL14, VALUE(5), 0 }, + { SENSORS_EEPROM_VAIO_SERIAL+21, "serial22", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL14, VALUE(6), 0 }, + { SENSORS_EEPROM_VAIO_SERIAL+22, "serial23", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL14, VALUE(7), 0 }, + { SENSORS_EEPROM_VAIO_SERIAL+23, "serial24", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL14, VALUE(8), 0 }, + { SENSORS_EEPROM_VAIO_SERIAL+24, "serial25", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL14, VALUE(9), 0 }, + { SENSORS_EEPROM_VAIO_SERIAL+25, "serial26", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL14, VALUE(10), 0 }, + { SENSORS_EEPROM_VAIO_SERIAL+26, "serial27", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL14, VALUE(11), 0 }, + { SENSORS_EEPROM_VAIO_SERIAL+27, "serial28", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL14, VALUE(12), 0 }, + { SENSORS_EEPROM_VAIO_SERIAL+28, "serial29", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL14, VALUE(13), 0 }, + { SENSORS_EEPROM_VAIO_SERIAL+29, "serial30", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL14, VALUE(14), 0 }, + { SENSORS_EEPROM_VAIO_SERIAL+30, "serial31", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL14, VALUE(15), 0 }, + { SENSORS_EEPROM_VAIO_SERIAL+31, "serial32", + SENSORS_NO_MAPPING, SENSORS_NO_MAPPING, + SENSORS_MODE_R, EEPROM_SYSCTL14, VALUE(16), 0 }, { 0 } }; diff --git a/lib/chips.h b/lib/chips.h index ac6430ed..f5fa699a 100644 --- a/lib/chips.h +++ b/lib/chips.h @@ -828,6 +828,10 @@ #define SENSORS_EEPROM_NUMROWS 14 #define SENSORS_EEPROM_BANKS 15 +#define SENSORS_EEPROM_VAIO_NAME 128 +/* 129 to 159: reserved, do not use! */ +#define SENSORS_EEPROM_VAIO_SERIAL 160 +/* 161 to 191: reserved, do not use! */ /* Analog Devices LM87 chips */ diff --git a/prog/sensors/chips.c b/prog/sensors/chips.c index 9554a8a9..36d7d575 100644 --- a/prog/sensors/chips.c +++ b/prog/sensors/chips.c @@ -2427,7 +2427,7 @@ void print_eeprom(const sensors_chip_name *name) { char *label = NULL; double a, b, c, d; - int valid, i, rambus=0; + int valid, i, rambus=0, vaio=0; if (!sensors_get_label_and_valid(*name, SENSORS_EEPROM_TYPE, &label,&valid) && !sensors_get_feature(*name, SENSORS_EEPROM_TYPE, &a)) { @@ -2443,11 +2443,43 @@ void print_eeprom(const sensors_chip_name *name) printf("RAMBUS RIMM SPD\n"); rambus = 1; } else - return; + vaio = 1; } } else printf("ERROR: data 1\n"); free_the_label(&label); + + if(vaio) + { + char buffer[33]; + memset(buffer, '\0', 33); + + if (!sensors_get_label_and_valid(*name, SENSORS_EEPROM_VAIO_NAME, &label,&valid) && + valid) { + a=1; + for(i=0; i<32 && a!=0; i++) + if(!sensors_get_feature(*name, SENSORS_EEPROM_VAIO_NAME+i, &a) && a!=0) + buffer[i]=(char)a; + print_label(label, 24); + printf("%s\n", buffer); + } else + printf("ERROR: data Vaio 1\n"); + free_the_label(&label); + + if (!sensors_get_label_and_valid(*name, SENSORS_EEPROM_VAIO_SERIAL, &label,&valid) && + valid) { + a=1; + for(i=0; i<32 && a!=0; i++) /* stop at first zero */ + if(!sensors_get_feature(*name, SENSORS_EEPROM_VAIO_SERIAL+i, &a) && a!=0) + buffer[i]=(char)a; + print_label(label, 24); + printf("%s\n", buffer); + } else + printf("ERROR: data Vaio 2\n"); + free_the_label(&label); + + return; + } if (!sensors_get_label_and_valid(*name, SENSORS_EEPROM_ROWADDR, &label,&valid) && !sensors_get_feature(*name, SENSORS_EEPROM_ROWADDR, &a) && @@ -2483,7 +2515,6 @@ void print_eeprom(const sensors_chip_name *name) } - void print_it87(const sensors_chip_name *name) { char *label = NULL;