aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/cpufreq/speedstep-smi.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/cpufreq/speedstep-smi.c')
-rw-r--r--drivers/cpufreq/speedstep-smi.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/cpufreq/speedstep-smi.c b/drivers/cpufreq/speedstep-smi.c
index c76ead3490bf..6a457fcaaad5 100644
--- a/drivers/cpufreq/speedstep-smi.c
+++ b/drivers/cpufreq/speedstep-smi.c
@@ -20,6 +20,7 @@
20#include <linux/delay.h> 20#include <linux/delay.h>
21#include <linux/io.h> 21#include <linux/io.h>
22#include <asm/ist.h> 22#include <asm/ist.h>
23#include <asm/cpu_device_id.h>
23 24
24#include "speedstep-lib.h" 25#include "speedstep-lib.h"
25 26
@@ -379,6 +380,17 @@ static struct cpufreq_driver speedstep_driver = {
379 .attr = speedstep_attr, 380 .attr = speedstep_attr,
380}; 381};
381 382
383static const struct x86_cpu_id ss_smi_ids[] = {
384 { X86_VENDOR_INTEL, 6, 0xb, },
385 { X86_VENDOR_INTEL, 6, 0x8, },
386 { X86_VENDOR_INTEL, 15, 2 },
387 {}
388};
389#if 0
390/* Not auto loaded currently */
391MODULE_DEVICE_TABLE(x86cpu, ss_smi_ids);
392#endif
393
382/** 394/**
383 * speedstep_init - initializes the SpeedStep CPUFreq driver 395 * speedstep_init - initializes the SpeedStep CPUFreq driver
384 * 396 *
@@ -388,6 +400,9 @@ static struct cpufreq_driver speedstep_driver = {
388 */ 400 */
389static int __init speedstep_init(void) 401static int __init speedstep_init(void)
390{ 402{
403 if (!x86_match_cpu(ss_smi_ids))
404 return -ENODEV;
405
391 speedstep_processor = speedstep_detect_processor(); 406 speedstep_processor = speedstep_detect_processor();
392 407
393 switch (speedstep_processor) { 408 switch (speedstep_processor) {