diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-20 14:16:20 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-03-20 14:16:20 -0400 |
commit | 4a52246302f01596f0edf7b4a3e6425e23479192 (patch) | |
tree | f384d86722d3ccfc875e3e5e8d8726e993a922ee /drivers/hwmon | |
parent | 9f9d2760da8c7f94fae119fac3e13d5a1702f8f0 (diff) | |
parent | adc80ae60eae24a43a357bf5b30fb496f34aa605 (diff) |
Merge tag 'driver-core-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core
Pull driver core patches for 3.4-rc1 from Greg KH:
"Here's the big driver core merge for 3.4-rc1.
Lots of various things here, sysfs fixes/tweaks (with the nlink
breakage reverted), dynamic debugging updates, w1 drivers, hyperv
driver updates, and a variety of other bits and pieces, full
information in the shortlog."
* tag 'driver-core-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core: (78 commits)
Tools: hv: Support enumeration from all the pools
Tools: hv: Fully support the new KVP verbs in the user level daemon
Drivers: hv: Support the newly introduced KVP messages in the driver
Drivers: hv: Add new message types to enhance KVP
regulator: Support driver probe deferral
Revert "sysfs: Kill nlink counting."
uevent: send events in correct order according to seqnum (v3)
driver core: minor comment formatting cleanups
driver core: move the deferred probe pointer into the private area
drivercore: Add driver probe deferral mechanism
DS2781 Maxim Stand-Alone Fuel Gauge battery and w1 slave drivers
w1_bq27000: Only one thread can access the bq27000 at a time.
w1_bq27000 - remove w1_bq27000_write
w1_bq27000: remove unnecessary NULL test.
sysfs: Fix memory leak in sysfs_sd_setsecdata().
intel_idle: Revert change of auto_demotion_disable_flags for Nehalem
w1: Fix w1_bq27000
driver-core: documentation: fix up Greg's email address
powernow-k6: Really enable auto-loading
powernow-k7: Fix CPU family number
...
Diffstat (limited to 'drivers/hwmon')
-rw-r--r-- | drivers/hwmon/coretemp.c | 17 | ||||
-rw-r--r-- | drivers/hwmon/via-cputemp.c | 16 |
2 files changed, 25 insertions, 8 deletions
diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c index a6c6ec36615e..249ac460e3d9 100644 --- a/drivers/hwmon/coretemp.c +++ b/drivers/hwmon/coretemp.c | |||
@@ -39,6 +39,7 @@ | |||
39 | #include <linux/moduleparam.h> | 39 | #include <linux/moduleparam.h> |
40 | #include <asm/msr.h> | 40 | #include <asm/msr.h> |
41 | #include <asm/processor.h> | 41 | #include <asm/processor.h> |
42 | #include <asm/cpu_device_id.h> | ||
42 | 43 | ||
43 | #define DRVNAME "coretemp" | 44 | #define DRVNAME "coretemp" |
44 | 45 | ||
@@ -759,13 +760,23 @@ static struct notifier_block coretemp_cpu_notifier __refdata = { | |||
759 | .notifier_call = coretemp_cpu_callback, | 760 | .notifier_call = coretemp_cpu_callback, |
760 | }; | 761 | }; |
761 | 762 | ||
763 | static const struct x86_cpu_id coretemp_ids[] = { | ||
764 | { X86_VENDOR_INTEL, X86_FAMILY_ANY, X86_MODEL_ANY, X86_FEATURE_DTS }, | ||
765 | {} | ||
766 | }; | ||
767 | MODULE_DEVICE_TABLE(x86cpu, coretemp_ids); | ||
768 | |||
762 | static int __init coretemp_init(void) | 769 | static int __init coretemp_init(void) |
763 | { | 770 | { |
764 | int i, err = -ENODEV; | 771 | int i, err = -ENODEV; |
765 | 772 | ||
766 | /* quick check if we run Intel */ | 773 | /* |
767 | if (cpu_data(0).x86_vendor != X86_VENDOR_INTEL) | 774 | * CPUID.06H.EAX[0] indicates whether the CPU has thermal |
768 | goto exit; | 775 | * sensors. We check this bit only, all the early CPUs |
776 | * without thermal sensors will be filtered out. | ||
777 | */ | ||
778 | if (!x86_match_cpu(coretemp_ids)) | ||
779 | return -ENODEV; | ||
769 | 780 | ||
770 | err = platform_driver_register(&coretemp_driver); | 781 | err = platform_driver_register(&coretemp_driver); |
771 | if (err) | 782 | if (err) |
diff --git a/drivers/hwmon/via-cputemp.c b/drivers/hwmon/via-cputemp.c index 8eac67d769fa..8689664ef03c 100644 --- a/drivers/hwmon/via-cputemp.c +++ b/drivers/hwmon/via-cputemp.c | |||
@@ -37,6 +37,7 @@ | |||
37 | #include <linux/cpu.h> | 37 | #include <linux/cpu.h> |
38 | #include <asm/msr.h> | 38 | #include <asm/msr.h> |
39 | #include <asm/processor.h> | 39 | #include <asm/processor.h> |
40 | #include <asm/cpu_device_id.h> | ||
40 | 41 | ||
41 | #define DRVNAME "via_cputemp" | 42 | #define DRVNAME "via_cputemp" |
42 | 43 | ||
@@ -308,15 +309,20 @@ static struct notifier_block via_cputemp_cpu_notifier __refdata = { | |||
308 | .notifier_call = via_cputemp_cpu_callback, | 309 | .notifier_call = via_cputemp_cpu_callback, |
309 | }; | 310 | }; |
310 | 311 | ||
312 | static const struct x86_cpu_id cputemp_ids[] = { | ||
313 | { X86_VENDOR_CENTAUR, 6, 0xa, }, /* C7 A */ | ||
314 | { X86_VENDOR_CENTAUR, 6, 0xd, }, /* C7 D */ | ||
315 | { X86_VENDOR_CENTAUR, 6, 0xf, }, /* Nano */ | ||
316 | {} | ||
317 | }; | ||
318 | MODULE_DEVICE_TABLE(x86cpu, cputemp_ids); | ||
319 | |||
311 | static int __init via_cputemp_init(void) | 320 | static int __init via_cputemp_init(void) |
312 | { | 321 | { |
313 | int i, err; | 322 | int i, err; |
314 | 323 | ||
315 | if (cpu_data(0).x86_vendor != X86_VENDOR_CENTAUR) { | 324 | if (!x86_match_cpu(cputemp_ids)) |
316 | printk(KERN_DEBUG DRVNAME ": Not a VIA CPU\n"); | 325 | return -ENODEV; |
317 | err = -ENODEV; | ||
318 | goto exit; | ||
319 | } | ||
320 | 326 | ||
321 | err = platform_driver_register(&via_cputemp_driver); | 327 | err = platform_driver_register(&via_cputemp_driver); |
322 | if (err) | 328 | if (err) |