Changeset 5275

Show
Ignore:
Timestamp:
06/07/08 23:14:07 (6 years ago)
Author:
khali
Message:

Merge several alias detection functions.
Drop unused parameter of vt1211_alias_detect.

Location:
lm-sensors/branches/lm-sensors-3.0.0
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • lm-sensors/branches/lm-sensors-3.0.0/CHANGES

    r5271 r5275  
    1111                  Add National Semiconductor LM95231 support 
    1212                  Add Analog Devices ADT7481 support 
     13                  Refactor alias detection functions 
    1314 
    14153.0.2 (2008-05-18) 
  • lm-sensors/branches/lm-sensors-3.0.0/prog/detect/sensors-detect

    r5274 r5275  
    626626       isa_addrs => [0x290], 
    627627       isa_detect => sub { lm78_isa_detect(0, @_); }, 
    628        alias_detect => sub { lm78_alias_detect(0, @_); }, 
     628       alias_detect => sub { winbond_alias_detect(0x2b, 0x3d, @_); }, 
    629629     }, 
    630630     { 
     
    635635       isa_addrs => [0x290], 
    636636       isa_detect => sub { lm78_isa_detect(1, @_); }, 
    637        alias_detect => sub { lm78_alias_detect(1, @_); }, 
     637       alias_detect => sub { winbond_alias_detect(0x2b, 0x3d, @_); }, 
    638638     }, 
    639639     { 
     
    644644       isa_addrs => [0x290], 
    645645       isa_detect => sub { lm78_isa_detect(2, @_); }, 
    646        alias_detect => sub { lm78_alias_detect(2, @_); }, 
     646       alias_detect => sub { winbond_alias_detect(0x2b, 0x3d, @_); }, 
    647647     }, 
    648648     { 
     
    799799       isa_addrs => [0x290], 
    800800       isa_detect => sub { w83781d_isa_detect(0, @_); }, 
    801        alias_detect => sub { w83781d_alias_detect(0, @_); }, 
     801       alias_detect => sub { winbond_alias_detect(0x2b, 0x3d, @_); }, 
    802802     }, 
    803803     { 
     
    808808       isa_addrs => [0x290], 
    809809       isa_detect => sub { w83781d_isa_detect(1, @_); }, 
    810        alias_detect => sub { w83781d_alias_detect(1, @_); }, 
     810       alias_detect => sub { winbond_alias_detect(0x2b, 0x3d, @_); }, 
    811811     }, 
    812812     { 
     
    18881888        devid => 0x3c, 
    18891889        logdev => 0x0b, 
    1890         alias_detect => sub { vt1211_alias_detect(0, @_); }, 
     1890        alias_detect => sub { vt1211_alias_detect(@_); }, 
    18911891      }, 
    18921892      { 
     
    18951895        devid => 0x52, 
    18961896        logdev => 0x0b, 
    1897         alias_detect => sub { w83781d_alias_detect(3, @_); }, 
     1897        alias_detect => sub { winbond_alias_detect(0x2b, 0x3d, @_); }, 
    18981898      }, 
    18991899      { 
     
    19351935        devid_mask => 0xFFC0, 
    19361936        logdev => 0x0b, 
    1937         alias_detect => sub { w83781d_alias_detect(9, @_); }, 
     1937        alias_detect => sub { winbond_alias_detect(0x2b, 0x3e, @_); }, 
    19381938      }, 
    19391939      { 
     
    19431943        devid_mask => 0xFFF0, 
    19441944        logdev => 0x0b, 
    1945         alias_detect => sub { w83781d_alias_detect(10, @_); }, 
     1945        alias_detect => sub { winbond_alias_detect(0x2b, 0x3e, @_); }, 
    19461946      }, 
    19471947      { 
     
    20312031        devid => 0x8712, 
    20322032        logdev => 0x04, 
    2033         alias_detect => sub { ite_alias_detect(0, @_); }, 
     2033        alias_detect => sub { winbond_alias_detect(0x30, 0x45, @_); }, 
    20342034      }, 
    20352035      { 
     
    36023602} 
    36033603 
    3604  
    3605 # $_[0]: Chip to detect (0 = LM78, 1 = LM78-J, 2 = LM79) 
    3606 # $_[1]: ISA address 
    3607 # $_[2]: I2C file handle 
    3608 # $_[3]: I2C address 
    3609 sub lm78_alias_detect 
    3610 { 
    3611   my ($chip, $isa_addr, $file, $i2c_addr) = @_; 
    3612   my $i; 
    3613  
    3614   return 0 unless isa_read_i5d6($isa_addr, 0x48) == $i2c_addr; 
    3615   for ($i = 0x2b; $i <= 0x3d; $i ++) { 
    3616     return 0 unless isa_read_i5d6($isa_addr, $i) == i2c_smbus_read_byte_data($file, $i); 
    3617   } 
    3618   return 1; 
    3619 } 
    3620  
    36213604# $_[0]: Chip to detect (0 = LM75, 1 = DS75) 
    36223605# $_[1]: A reference to the file descriptor to access this chip. 
     
    46694652} 
    46704653 
    4671 # $_[0]: Chip to detect (0 = W83781D, 1 = W83782D, 3 = W83627HF, 
    4672 #                        9 = W83627EHF 10, = W83627DHG) 
    4673 # $_[1]: ISA address 
    4674 # $_[2]: I2C file handle 
    4675 # $_[3]: I2C address 
    4676 sub w83781d_alias_detect 
    4677 { 
    4678   my ($chip, $isa_addr, $file, $i2c_addr) = @_; 
     4654# $_[0]: First limit register to compare 
     4655# $_[1]: Last limit register to compare 
     4656# $_[2]: ISA address 
     4657# $_[3]: I2C file handle 
     4658# $_[4]: I2C address 
     4659sub winbond_alias_detect 
     4660{ 
     4661  my ($first, $last, $isa_addr, $file, $i2c_addr) = @_; 
    46794662  my $i; 
    4680   my $max = ($chip == 9 || $chip == 10) ? 0x3e : 0x3d; 
    46814663 
    46824664  return 0 unless isa_read_i5d6($isa_addr, 0x48) == $i2c_addr; 
    4683   for ($i = 0x2b; $i <= $max; $i ++) { 
     4665  for ($i = $first; $i <= $last; $i++) { 
    46844666    return 0 unless isa_read_i5d6($isa_addr, $i) == i2c_smbus_read_byte_data($file, $i); 
    46854667  } 
     
    50555037  return if $chip == 0 and i2c_smbus_read_byte_data($file, 0x5b) != 0x12; 
    50565038  return (7 + ($addr == 0x2d)); 
    5057 } 
    5058  
    5059  
    5060 # $_[0]: Chip to detect (0 = IT8712F) 
    5061 # $_[1]: ISA address 
    5062 # $_[2]: I2C file handle 
    5063 # $_[3]: I2C address 
    5064 sub ite_alias_detect 
    5065 { 
    5066   my ($chip, $isa_addr, $file, $i2c_addr) = @_; 
    5067   my $i; 
    5068  
    5069   return 0 unless isa_read_i5d6($isa_addr, 0x48) == $i2c_addr; 
    5070   for ($i = 0x30; $i <= 0x45; $i++) { 
    5071     return 0 unless isa_read_i5d6($isa_addr, $i) == i2c_smbus_read_byte_data($file, $i); 
    5072   } 
    5073   return 1; 
    50745039} 
    50755040 
     
    55385503} 
    55395504 
    5540 # $_[0]: Chip to detect (0 = VT1211) 
    5541 # $_[1]: ISA address 
    5542 # $_[2]: I2C file handle 
    5543 # $_[3]: I2C address 
     5505# $_[0]: ISA address 
     5506# $_[1]: I2C file handle 
     5507# $_[2]: I2C address 
    55445508sub vt1211_alias_detect 
    55455509{ 
    5546   my ($chip, $isa_addr, $file, $i2c_addr) = @_; 
     5510  my ($isa_addr, $file, $i2c_addr) = @_; 
    55475511  my $i; 
    55485512  return 0 unless (inb($isa_addr + 0x48) & 0x7f) == $i2c_addr; 
    5549   for ($i = 0x2b; $i <= 0x3d; $i ++) { 
     5513  for ($i = 0x2b; $i <= 0x3d; $i++) { 
    55505514    return 0 unless inb($isa_addr + $i) == i2c_smbus_read_byte_data($file, $i); 
    55515515  }