linux/drivers/hwmon
Jean Delvare cd4de21f7e hwmon: (k8temp) Bypass core swapping on single-core processors
Commit a2e066bba2 introduced core
swapping for CPU models 64 and later. I recently had a report about
a Sempron 3200+, model 95, for which this patch broke temperature
reading. It happens that this is a single-core processor, so the
effect of the swapping was to read a temperature value for a core
that didn't exist, leading to an incorrect value (-49 degrees C.)

Disabling core swapping on singe-core processors should fix this.

Additional comment from Andreas:

The BKDG says

  Thermal Sensor Core Select (ThermSenseCoreSel)-Bit 2. This bit
  selects the CPU whose temperature is reported in the CurTemp
  field. This bit only applies to dual core processors. For
  single core processors CPU0 Thermal Sensor is always selected.

k8temp_probe() correctly detected that SEL_CORE can't be used on single
core CPU. Thus k8temp did never update the temperature values stored
in temp[1][x] and -49 degrees was reported. For single core CPUs we
must use the values read into temp[0][x].

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Tested-by: Rick Moritz <rhavin@gmx.net>
Acked-by: Andreas Herrmann <andreas.herrmann3@amd.com>
Cc: stable@kernel.org
2010-06-20 09:22:32 +02:00
..
ams macintosh/hwmon/ams: Fix device removal sequence 2010-02-03 17:39:49 +11:00
abituguru3.c
abituguru.c
ad7414.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
ad7418.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
adcxx.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
adm1021.c i2c: Drop I2C_CLIENT_INSMOD_2 to 8 2009-12-14 21:17:27 +01:00
adm1025.c i2c: Drop I2C_CLIENT_INSMOD_2 to 8 2009-12-14 21:17:27 +01:00
adm1026.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
adm1029.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
adm1031.c hwmon: (adm1031) Allow setting update rate 2010-05-27 19:58:46 +02:00
adm9240.c i2c: Drop I2C_CLIENT_INSMOD_2 to 8 2009-12-14 21:17:27 +01:00
ads7828.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
ads7871.c hwmon: add TI ads7871 a/d converter driver 2010-05-25 08:07:07 -07:00
adt7411.c i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
adt7462.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
adt7470.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
adt7475.c i2c: Drop I2C_CLIENT_INSMOD_2 to 8 2009-12-14 21:17:27 +01:00
amc6821.c hwmon: (amc6821) Double unlock bug 2010-01-25 15:00:49 +01:00
applesmc.c hwmon: (applesmc) Add temperature sensor labels to sysfs interface 2010-05-27 19:58:54 +02:00
asb100.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
asc7621.c i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
asus_atk0110.c hwmon: (asus_atk0110) Don't load if ACPI resources aren't enforced 2010-05-27 19:58:37 +02:00
atxp1.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
coretemp.c drivers/hwmon/coretemp.c: get TjMax value from MSR 2010-05-25 08:07:07 -07:00
dme1737.c hwmon: (dme1737) Add SCH5127 support 2010-05-27 19:59:01 +02:00
ds1621.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
emc1403.c hwmon: EMC1403 thermal sensor support 2010-05-27 19:58:56 +02:00
f71805f.c
f71882fg.c hwmon: (f71882fg) Acquire I/O regions while we're working with them 2010-05-27 19:58:43 +02:00
f75375s.c i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
fschmd.c drivers: Push down BKL into various drivers 2010-05-17 05:27:41 +02:00
g760a.c i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
gl518sm.c i2c: Drop I2C_CLIENT_INSMOD_2 to 8 2009-12-14 21:17:27 +01:00
gl520sm.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
hdaps.c
hp_accel.c hp_accel: fix race in device removal 2010-05-11 17:33:42 -07:00
hwmon-vid.c
hwmon.c
i5k_amb.c hwmon: (i5k_amb) Fix sysfs attribute for lockdep 2010-06-20 09:22:31 +02:00
ibmaem.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
ibmpex.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
it87.c hwmon: (it87) Invalidate cache on temperature sensor change 2010-04-14 16:14:10 +02:00
k8temp.c hwmon: (k8temp) Bypass core swapping on single-core processors 2010-06-20 09:22:32 +02:00
k10temp.c hwmon: (k10temp) Do not blacklist known working CPU models 2010-06-20 09:22:31 +02:00
Kconfig hwmon: (lm75) Add support for the Texas Instruments TMP105 2010-05-27 19:59:03 +02:00
lis3lv02d_i2c.c hwmon: I2C bus support for lis3lv02d and variant accelerometer chips 2009-12-17 15:45:30 -08:00
lis3lv02d_spi.c lis3lv02d_spi: module unload didn't remove sysfs entry 2009-10-08 07:36:40 -07:00
lis3lv02d.c lis3: setup poll interval limits 2010-05-25 08:07:07 -07:00
lis3lv02d.h lis3: interrupt handlers for 8bit wakeup and click events 2010-05-25 08:07:07 -07:00
lm63.c hwmon: (lm63) Add basic support for LM64 2010-05-27 19:58:38 +02:00
lm70.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
lm73.c i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
lm75.c i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
lm75.h
lm77.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
lm78.c hwmon: (lm78) Request I/O ports individually for probing 2010-02-05 19:58:36 +01:00
lm80.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
lm83.c i2c: Drop I2C_CLIENT_INSMOD_2 to 8 2009-12-14 21:17:27 +01:00
lm85.c i2c: Drop I2C_CLIENT_INSMOD_2 to 8 2009-12-14 21:17:27 +01:00
lm87.c i2c: Drop I2C_CLIENT_INSMOD_2 to 8 2009-12-14 21:17:27 +01:00
lm90.c hwmon: (lm90) Use programmed update rate 2010-05-27 19:58:44 +02:00
lm92.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
lm93.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
lm95241.c i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
ltc4215.c ltc4215/ltc4245: Discard obsolete detect methods 2009-10-04 22:53:42 +02:00
ltc4245.c hwmon: (ltc4245) Read only one GPIO pin 2010-05-27 19:59:02 +02:00
Makefile hwmon: Driver for TI TMP102 temperature sensor 2010-05-27 19:58:56 +02:00
max1111.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
max1619.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
max6650.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
mc13783-adc.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
pc87360.c
pc87427.c
pcf8591.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
s3c-hwmon.c hwmon: (s3c-hwmon) Fix build error 2009-12-09 20:35:45 +01:00
sht15.c hwmon: (sht15) Properly handle the case CONFIG_REGULATOR=n 2010-04-14 16:14:08 +02:00
sis5595.c hwmon: Make PCI device ids constant 2010-01-10 20:52:35 +01:00
smsc47b397.c
smsc47m1.c hwmon: (smsc47m1) Fix section mismatch 2010-01-25 15:00:48 +01:00
smsc47m192.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
thmc50.c i2c: Drop I2C_CLIENT_INSMOD_2 to 8 2009-12-14 21:17:27 +01:00
tmp102.c i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
tmp401.c hwmon: (tmp401) Reorganize code to get rid of static forward declarations 2010-05-27 19:58:49 +02:00
tmp421.c i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
ultra45_env.c of: Remove duplicate fields from of_platform_driver 2010-05-22 00:10:40 -06:00
via686a.c hwmon: Make PCI device ids constant 2010-01-10 20:52:35 +01:00
via-cputemp.c hwmon: Add driver for VIA CPU core temperature 2009-12-16 21:38:28 +01:00
vt1211.c
vt8231.c drivers/hwmon/vt8231.c: fix continuation line formats 2010-03-06 11:26:45 -08:00
w83l785ts.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
w83l786ng.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
w83627ehf.c hwmon: w83627ehf updates 2009-12-15 08:53:35 -08:00
w83627hf.c hwmon: (w83627hf) Fix for "No such device" 2009-12-16 21:38:29 +01:00
w83781d.c i2c: Remove all i2c_set_clientdata(client, NULL) in drivers 2010-06-03 11:33:58 +02:00
w83791d.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
w83792d.c i2c: Drop I2C_CLIENT_INSMOD_1 2009-12-14 21:17:26 +01:00
w83793.c drivers: Push down BKL into various drivers 2010-05-17 05:27:41 +02:00
wm831x-hwmon.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
wm8350-hwmon.c