aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/cpufreq/powernow-k7.c
diff options
context:
space:
mode:
authorAndi Kleen <ak@linux.intel.com>2012-01-25 18:09:12 -0500
committerGreg Kroah-Hartman <gregkh@suse.de>2012-01-26 19:49:06 -0500
commitfa8031aefec0cf7ea6c2387c93610d99d9659aa2 (patch)
treea174505948159296198a66874655868b78718bde /drivers/cpufreq/powernow-k7.c
parent2f1e097e24defe64a86535b53768f5c8ab0368d1 (diff)
cpufreq: Add support for x86 cpuinfo auto loading v4
This marks all the x86 cpuinfo tables to the CPU specific device drivers, to allow auto loading by udev. This should simplify the distribution startup scripts for this greatly. I didn't add MODULE_DEVICE_IDs to the centrino and p4-clockmod drivers, because those probably shouldn't be auto loaded and the acpi driver be used instead (not fully sure on that, would appreciate feedback) The old nforce drivers autoload based on the PCI ID. ACPI cpufreq is autoloaded in another patch. v3: Autoload gx based on PCI IDs only. Remove cpu check (Dave Jones) v4: Use newly introduce HW_PSTATE feature for powernow-k8 loading Cc: Dave Jones <davej@redhat.com> Cc: Kay Sievers <kay.sievers@vrfy.org> Signed-off-by: Andi Kleen <ak@linux.intel.com> Signed-off-by: Thomas Renninger <trenn@suse.de> Acked-by: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers/cpufreq/powernow-k7.c')
-rw-r--r--drivers/cpufreq/powernow-k7.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/drivers/cpufreq/powernow-k7.c b/drivers/cpufreq/powernow-k7.c
index d71d9f372359..501d167368d2 100644
--- a/drivers/cpufreq/powernow-k7.c
+++ b/drivers/cpufreq/powernow-k7.c
@@ -28,6 +28,7 @@
28#include <asm/timer.h> /* Needed for recalibrate_cpu_khz() */ 28#include <asm/timer.h> /* Needed for recalibrate_cpu_khz() */
29#include <asm/msr.h> 29#include <asm/msr.h>
30#include <asm/system.h> 30#include <asm/system.h>
31#include <asm/cpu_device_id.h>
31 32
32#ifdef CONFIG_X86_POWERNOW_K7_ACPI 33#ifdef CONFIG_X86_POWERNOW_K7_ACPI
33#include <linux/acpi.h> 34#include <linux/acpi.h>
@@ -110,18 +111,19 @@ static int check_fsb(unsigned int fsbspeed)
110 return delta < 5; 111 return delta < 5;
111} 112}
112 113
114static const struct x86_cpu_id powernow_k7_cpuids[] = {
115 { X86_VENDOR_AMD, 7, },
116 {}
117};
118MODULE_DEVICE_TABLE(x86cpu, powernow_k7_cpuids);
119
113static int check_powernow(void) 120static int check_powernow(void)
114{ 121{
115 struct cpuinfo_x86 *c = &cpu_data(0); 122 struct cpuinfo_x86 *c = &cpu_data(0);
116 unsigned int maxei, eax, ebx, ecx, edx; 123 unsigned int maxei, eax, ebx, ecx, edx;
117 124
118 if ((c->x86_vendor != X86_VENDOR_AMD) || (c->x86 != 6)) { 125 if (!x86_match_cpu(powernow_k7_cpuids))
119#ifdef MODULE
120 printk(KERN_INFO PFX "This module only works with "
121 "AMD K7 CPUs\n");
122#endif
123 return 0; 126 return 0;
124 }
125 127
126 /* Get maximum capabilities */ 128 /* Get maximum capabilities */
127 maxei = cpuid_eax(0x80000000); 129 maxei = cpuid_eax(0x80000000);