Changeset 2477
- Timestamp:
- 04/25/04 17:23:32 (9 years ago)
- Files:
-
- 1 modified
-
lm-sensors/trunk/kernel/chips/pc87360.c (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
lm-sensors/trunk/kernel/chips/pc87360.c
r2474 r2477 123 123 #define IN_TO_REG(val) ((val)<0?0:(val)>297?255: \ 124 124 ((val) * 255 + 148) / 297) 125 #define IN_STATUS_FROM_REG(val) ((val) & 0x 86)125 #define IN_STATUS_FROM_REG(val) ((val) & 0x97) 126 126 127 127 /* … … 142 142 #define TEMP_TO_REG(val) ((val)<-128?0x80:(val)>127?0x7F: \ 143 143 (val)<0?(val)+0x80:(val)) 144 #define TEMP_STATUS_FROM_REG(val) ((val) & 0x CE)144 #define TEMP_STATUS_FROM_REG(val) ((val) & 0xFF) 145 145 146 146 struct pc87360_data { … … 437 437 438 438 address[i] = val; 439 440 #ifdef DEBUG 441 if (i==0) { /* Fans */ 442 val = superio_inb(0x70) 443 | (superio_inb(0x71) << 8); 444 445 printk(KERN_DEBUG "pc87360.o: Fan 1: mon=%d " 446 "ctrl=%d inv=%d\n", (val>>2)&1, (val>>3)&1, 447 (val>>4)&1); 448 printk(KERN_DEBUG "pc87360.o: Fan 2: mon=%d " 449 "ctrl=%d inv=%d\n", (val>>5)&1, (val>>6)&1, 450 (val>>7)&1); 451 printk(KERN_DEBUG "pc87360.o: Fan 3: mon=%d " 452 "ctrl=%d inv=%d\n", (val>>8)&1, (val>>9)&1, 453 (val>>10)&1); 454 } 455 #endif 439 456 } 440 457 … … 454 471 const char *type_name = "pc87360"; 455 472 const char *client_name = "PC8736x chip"; 456 c onst ctl_table *template = pc87360_dir_table_template;473 ctl_table *template = pc87360_dir_table_template; 457 474 458 475 if (!i2c_is_isa_adapter(adapter)) { … … 597 614 down(&data->update_lock); 598 615 599 if ((jiffies - data->last_updated > HZ + HZ /2) ||616 if ((jiffies - data->last_updated > HZ * 2) || 600 617 (jiffies < data->last_updated) || !data->valid) { 618 #ifdef DEBUG 619 printk(KERN_DEBUG "pc87360.o: Data update\n"); 620 #endif 621 622 /* Fans */ 601 623 for (i = 0; i < data->fannr; i++) { 602 624 data->fan[i] = pc87360_read_value(data, 0, … … 610 632 } 611 633 634 /* Voltages */ 612 635 for (i = 0; i < data->innr; i++) { 613 636 pc87360_write_value(data, 1, PC87365_REG_IN_BANK, i); 614 637 data->in_status[i] = pc87360_read_value(data, 1, 615 638 PC87365_REG_IN_STATUS); 639 /* Clear bits */ 640 pc87360_write_value(data, 1, PC87365_REG_IN_STATUS, 641 data->in_status[i] | 0x86); 616 642 if (data->in_status[i] & 0x01) { 617 643 data->in[i] = pc87360_read_value(data, 1, … … 628 654 } 629 655 656 /* Temperatures */ 630 657 for (i = 0; i < data->tempnr; i++) { 631 658 pc87360_write_value(data, 2, PC87365_REG_TEMP_BANK, i); 632 659 data->temp_status[i] = pc87360_read_value(data, 2, 633 660 PC87365_REG_TEMP_STATUS); 661 /* Clear bits */ 662 pc87360_write_value(data, 2, PC87365_REG_TEMP_STATUS, 663 data->temp_status[i] | 0xCE); 634 664 if (data->temp_status[i] & 0x01) { 635 665 data->temp[i] = pc87360_read_value(data, 2, … … 826 856 results[0] = TEMP_FROM_REG(data->temp_max[nr]); 827 857 results[1] = TEMP_FROM_REG(data->temp_min[nr]); 828 results[ 1] = TEMP_FROM_REG(data->temp_crit[nr]);829 results[ 2] = TEMP_FROM_REG(data->temp[nr]);858 results[2] = TEMP_FROM_REG(data->temp_crit[nr]); 859 results[3] = TEMP_FROM_REG(data->temp[nr]); 830 860 *nrels_mag = 4; 831 861 } … … 841 871 if (*nrels_mag >= 2) { 842 872 data->temp_min[nr] = TEMP_TO_REG(results[1]); 843 pc87360_write_value(data, 2, PC87365_REG_TEMP_M AX,844 data->temp_m ax[nr]);873 pc87360_write_value(data, 2, PC87365_REG_TEMP_MIN, 874 data->temp_min[nr]); 845 875 } 846 876 if (*nrels_mag >= 3) {
