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/cpufreq/p4-clockmod.c | |
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/cpufreq/p4-clockmod.c')
-rw-r--r-- | drivers/cpufreq/p4-clockmod.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/drivers/cpufreq/p4-clockmod.c b/drivers/cpufreq/p4-clockmod.c index 6be3e0760c26..827629c9aad7 100644 --- a/drivers/cpufreq/p4-clockmod.c +++ b/drivers/cpufreq/p4-clockmod.c | |||
@@ -31,6 +31,7 @@ | |||
31 | #include <asm/processor.h> | 31 | #include <asm/processor.h> |
32 | #include <asm/msr.h> | 32 | #include <asm/msr.h> |
33 | #include <asm/timer.h> | 33 | #include <asm/timer.h> |
34 | #include <asm/cpu_device_id.h> | ||
34 | 35 | ||
35 | #include "speedstep-lib.h" | 36 | #include "speedstep-lib.h" |
36 | 37 | ||
@@ -289,21 +290,25 @@ static struct cpufreq_driver p4clockmod_driver = { | |||
289 | .attr = p4clockmod_attr, | 290 | .attr = p4clockmod_attr, |
290 | }; | 291 | }; |
291 | 292 | ||
293 | static const struct x86_cpu_id cpufreq_p4_id[] = { | ||
294 | { X86_VENDOR_INTEL, X86_FAMILY_ANY, X86_MODEL_ANY, X86_FEATURE_ACC }, | ||
295 | {} | ||
296 | }; | ||
297 | |||
298 | /* | ||
299 | * Intentionally no MODULE_DEVICE_TABLE here: this driver should not | ||
300 | * be auto loaded. Please don't add one. | ||
301 | */ | ||
292 | 302 | ||
293 | static int __init cpufreq_p4_init(void) | 303 | static int __init cpufreq_p4_init(void) |
294 | { | 304 | { |
295 | struct cpuinfo_x86 *c = &cpu_data(0); | ||
296 | int ret; | 305 | int ret; |
297 | 306 | ||
298 | /* | 307 | /* |
299 | * THERM_CONTROL is architectural for IA32 now, so | 308 | * THERM_CONTROL is architectural for IA32 now, so |
300 | * we can rely on the capability checks | 309 | * we can rely on the capability checks |
301 | */ | 310 | */ |
302 | if (c->x86_vendor != X86_VENDOR_INTEL) | 311 | if (!x86_match_cpu(cpufreq_p4_id) || !boot_cpu_has(X86_FEATURE_ACPI)) |
303 | return -ENODEV; | ||
304 | |||
305 | if (!test_cpu_cap(c, X86_FEATURE_ACPI) || | ||
306 | !test_cpu_cap(c, X86_FEATURE_ACC)) | ||
307 | return -ENODEV; | 312 | return -ENODEV; |
308 | 313 | ||
309 | ret = cpufreq_register_driver(&p4clockmod_driver); | 314 | ret = cpufreq_register_driver(&p4clockmod_driver); |