(Copied from a forum message I placed.) I have noticed that in "gkrellm" (app-admin/gkrellm-2.2.4) & "sensors" (sys-apps/lm_sensors-2.8.7) the i2c device "w83627hf-6-0290" does not appear to be detected when using kernels higher than 2.6.9-r14. (Specifically 2.6.10-r6 and 2.6.11-r4.) But the i2c device "adt7463-4-002e" appears to work on all of those kernel versions. Rebooting between the different kernels shows up these differences, so clearly it is a kernel issue. I have compared my .config files for the various kernel versions, and can't see any significant differences between them in the i2c sections. I have a Tyan Thunder K8S motherboard with dual Opteron 250s, 2Gb RAM, Fusion MPT HBA. I've downloaded and installed the sensors.conf from Tyan (per suggestions from other posts) some time ago. Reproducible: Always Steps to Reproduce: 1. 2. 3. Actual Results: Output from "sensors" on 2.6.11-gentoo-r4: > sensors adt7463-i2c-4-2e Adapter: SMBus AMD8111 adapter at 50e0 ERROR: Can't get alarm mask data! CPU0 DDR 2.5: +2.617 V (min = +2.37 V, max = +2.63 V) CPU0 DDR VTT: +1.313 V (min = +1.18 V, max = +1.31 V) 3.3VSB: +3.334 V (min = +3.13 V, max = +3.47 V) +5V: +5.000 V (min = +4.74 V, max = +5.26 V) +12V: +11.750 V (min = +11.38 V, max = +12.62 V) FAN3 (REAR): 1617 RPM (min = 3000 RPM) ALARM FAN4 (BOTTOM): 0 RPM (min = 3000 RPM) ALARM FAN1 (CPU0): 4545 RPM (min = 3000 RPM) FAN2 (CPU1): 3379 RPM (min = 3000 RPM) CPU1 Temp:+38.00 C (low = -127 C, high = +127 C) System Temp: +43.00 C (low = -127 C, high = +127 C) CPU0 Temp:+48.00 C (low = -127 C, high = +127 C) ERROR: Can't get PWM1 data! ERROR: Can't get PWM2 data! ERROR: Can't get PWM3 data! Expected Results: Output from "sensors" on 2.6.9-gentoo-r14: > sensors adt7463-i2c-4-2e Adapter: SMBus AMD756 adapter at 50e0 ERROR: Can't get alarm mask data! CPU0 DDR 2.5: +2.617 V (min = +2.37 V, max = +2.63 V) CPU0 DDR VTT: +1.313 V (min = +1.18 V, max = +1.31 V) 3.3VSB: +3.334 V (min = +3.13 V, max = +3.47 V) +5V: +5.000 V (min = +4.74 V, max = +5.26 V) +12V: +11.750 V (min = +11.38 V, max = +12.62 V) FAN3 (REAR): 1695 RPM (min = 3000 RPM) ALARM FAN4 (BOTTOM): 0 RPM (min = 3000 RPM) ALARM FAN1 (CPU0): 4958 RPM (min = 3000 RPM) FAN2 (CPU1): 3616 RPM (min = 3000 RPM) CPU1 Temp:+39.00 C (low = -127 C, high = +127 C) System Temp: +44.00 C (low = -127 C, high = +127 C) CPU0 Temp:+49.00 C (low = -127 C, high = +127 C) pwm1 fan: 255 pwm2 fan: 255 pwm3 fan: 255 w83627hf-isa-0290 Adapter: ISA adapter CPU0 Vcore: +1.50 V (min = +1.42 V, max = +1.57 V) CPU1 Vcore: +1.50 V (min = +1.42 V, max = +1.57 V) +3.3V: +3.20 V (min = +3.14 V, max = +3.46 V) CPU1 DDR VTT: +1.30 V (min = +1.18 V, max = +1.31 V) CPU1 DDR 2.5: +2.54 V (min = +2.37 V, max = +2.62 V) VDD_CPU0: +1.17 V (min = +1.14 V, max = +1.26 V) VBat: +2.05 V (min = +3.14 V, max = +3.46 V) FAN5 (TOP): 0 RPM (min = 2657 RPM, div = 2) FAN6 (FRONT): 0 RPM (min = 2657 RPM, div = 2) rear temp: +50 C (high = +40 C, hyst = +37 C) sensor = thermistor I/O panel temp: +41.5 C (high = +52 C, hyst = +47 C) sensor = thermistor ERROR: Can't get VID data! alarms: beep_enable: Sound alarm disabled Output from "sensors-detect" on kernel v2.6.11-gentoo-r4 identifies this device on the SMBus AMD8111 adapter at 0x50e0, see the output below: Next adapter: SMBus AMD8111 adapter at 50e0 (Algorithm unavailable) Do you want to scan it? (YES/no/selectively): Client found at address 0x08 Client found at address 0x0c Client found at address 0x28 ... Probing for `Winbond W83627HF'... Success! (confidence 8, driver `w83781d') ... Client at address 0x2e can not be probed - unload all client drivers first! Client at address 0x50 can not be probed - unload all client drivers first! Client at address 0x51 can not be probed - unload all client drivers first! Client at address 0x54 can not be probed - unload all client drivers first! Client at address 0x55 can not be probed - unload all client drivers first! Client found at address 0x69 Note that I have compiled the i2c drivers into the kernel. (Which worked on 2.6. 9.) Also this chip is successfully detected on the ISA bus (more output from sensors-detect): Do you want to scan the ISA bus? (YES/no): ... Probing for `Winbond W83627HF' Trying address 0x0290... Success! (confidence 8, driver `w83781d') Alias of the chip on I2C bus `SMBus AMD8111 adapter at 50e0', address 0x0028 ... And: Do you want to scan for Super I/O sensors? (YES/no): ... Probing for `Winbond W83627HF Super IO Sensors' Success... found at address 0x0290 ... And later: Driver `w83781d' (may not be inserted): Misdetects: * Bus `SMBus AMD8111 adapter at 50e0' (Algorithm unavailable) Busdriver `i2c-amd756', I2C address 0x28 ISA bus address 0x0290 (Busdriver `i2c-isa') Chip `Winbond W83627HF' (confidence: 8) Driver `w83627hf' (should be inserted): Detects correctly: * ISA bus address 0x0290 (Busdriver `i2c-isa') Chip `Winbond W83627HF Super IO Sensors' (confidence: 9) I have tried both the w83627d (that worked in 2.6.9) and the w83627hf drivers in kernel v2.6.11 and neither appear to work.
I have found a solution at http://www2.lm-sensors.nu/~lm78/readticket.cgi?ticket=1839: "One of the problems was that both subclients of the w83627hf chips were set to 0x48. This can be fixed by the following command: isaset 0x295 0x296 0x4a 0x89 Or by using the force_subclients module parameter of the w83781d driver. After that, loading the w83781d driver with the force_w83627hf=1,0x28 parameter worked. It is still not clear why force parameters were needed at all for both chips, nor why the W83627HF chip couldn
I have found a solution at http://www2.lm-sensors.nu/~lm78/readticket.cgi?ticket=1839: "One of the problems was that both subclients of the w83627hf chips were set to 0x48. This can be fixed by the following command: isaset 0x295 0x296 0x4a 0x89 Or by using the force_subclients module parameter of the w83781d driver. After that, loading the w83781d driver with the force_w83627hf=1,0x28 parameter worked. It is still not clear why force parameters were needed at all for both chips, nor why the W83627HF chip couldn´t be accessed on the ISA bus when sensors-detect would detect it correctly here." Note that this implies that the driver has to be compiled as a module, as far as I am aware... Also note that the I/O temperature (which I think worked with 2.6.9) does not appear to be correctly read, and is stuck at 0, everything else seems to be o.k.
Reporter, please see if the newly added sys-apps/lm_sensors-2.9.1 fixes this. In any case, this is an upstream problem - not much we can do about it since we do not develop the drivers, we only distribute them.
Unfortuantely this new version, sys-apps/lm_sensors-2.9.1, does not resolve the problem, and the same work-around has to be used.
As stated in comment #2, there's nothing much we can do about this. Please contact upstream.