Jean Delvare wrote: > Hi Hans, > > On Sat, 14 Feb 2009 20:12:32 +0100, Hans de Goede wrote: >> As discussed on IRC the Syleus does not like our way of seeing if a device is >> present at a certain address, this patch implements a workaround consisting of >> doing a byte data read instead of a quick command or a byte read. >> >> Once reviewed I can commit this myself. > >> Index: prog/detect/sensors-detect >> =================================================================== >> --- prog/detect/sensors-detect (revision 5642) >> +++ prog/detect/sensors-detect (working copy) >> @@ -2629,7 +2629,14 @@ >> { >> my ($file, $addr, $funcs) = @_; >> >> - if (($addr >= 0x50 && $addr <= 0x5F) >> + if ($addr == 0x73) { >> + # Special case for FSC chips, as at least the Syleus locks >> + # up with our regular probe code. Note that to our current >> + # knowledge only FSC chips live on this address, and for them >> + # this probe method is safe > > Missing final dot ;) > >> + return 0 unless ($funcs & I2C_FUNC_SMBUS_READ_BYTE); > > Wrong test: you want to check for I2C_FUNC_SMBUS_READ_BYTE_DATA. > I tried that, but I got an undefined symbol (or somethinglike that) error >> + return i2c_smbus_access($file, SMBUS_READ, 0, SMBUS_BYTE_DATA, []); >> + } elsif (($addr >= 0x50 && $addr <= 0x5F) >> || ($addr >= 0x30 && $addr <= 0x37)) { >> # This covers all EEPROMs we know of, including page protection >> # addresses. Note that some page protection addresses will not > > Minor nitpicking: I'd also move the test after the EEPROM test, keeping > the tests in both numeric and historical order. > Ok, will do when the I2C_FUNC_SMBUS_READ_BYTE_DATA thingie is sorted. Regards, Hans