aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/cpufreq/gx-suspmod.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/gx-suspmod.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/gx-suspmod.c')
-rw-r--r--drivers/cpufreq/gx-suspmod.c9
1 files changed, 2 insertions, 7 deletions
diff --git a/drivers/cpufreq/gx-suspmod.c b/drivers/cpufreq/gx-suspmod.c
index ffe1f2c92ed3..5a06c0ba2452 100644
--- a/drivers/cpufreq/gx-suspmod.c
+++ b/drivers/cpufreq/gx-suspmod.c
@@ -82,6 +82,7 @@
82#include <linux/errno.h> 82#include <linux/errno.h>
83#include <linux/slab.h> 83#include <linux/slab.h>
84 84
85#include <asm/cpu_device_id.h>
85#include <asm/processor-cyrix.h> 86#include <asm/processor-cyrix.h>
86 87
87/* PCI config registers, all at F0 */ 88/* PCI config registers, all at F0 */
@@ -171,6 +172,7 @@ static struct pci_device_id gx_chipset_tbl[] __initdata = {
171 { PCI_VDEVICE(CYRIX, PCI_DEVICE_ID_CYRIX_5510), }, 172 { PCI_VDEVICE(CYRIX, PCI_DEVICE_ID_CYRIX_5510), },
172 { 0, }, 173 { 0, },
173}; 174};
175MODULE_DEVICE_TABLE(gx_chipset_tbl);
174 176
175static void gx_write_byte(int reg, int value) 177static void gx_write_byte(int reg, int value)
176{ 178{
@@ -185,13 +187,6 @@ static __init struct pci_dev *gx_detect_chipset(void)
185{ 187{
186 struct pci_dev *gx_pci = NULL; 188 struct pci_dev *gx_pci = NULL;
187 189
188 /* check if CPU is a MediaGX or a Geode. */
189 if ((boot_cpu_data.x86_vendor != X86_VENDOR_NSC) &&
190 (boot_cpu_data.x86_vendor != X86_VENDOR_CYRIX)) {
191 pr_debug("error: no MediaGX/Geode processor found!\n");
192 return NULL;
193 }
194
195 /* detect which companion chip is used */ 190 /* detect which companion chip is used */
196 for_each_pci_dev(gx_pci) { 191 for_each_pci_dev(gx_pci) {
197 if ((pci_match_id(gx_chipset_tbl, gx_pci)) != NULL) 192 if ((pci_match_id(gx_chipset_tbl, gx_pci)) != NULL)