From f913edb48811958071c859ead3591178fd639aa2 Mon Sep 17 00:00:00 2001 From: Dave Jones Date: Sat, 8 Mar 2003 06:38:32 -0100 Subject: [PATCH] [CPUFREQ] add support for ICH4-M chipset in speedstep driver Intel ICH4-M soutbridges use exactly the same register interface for SpeedStep as ICH2-M and ICH3-M southbridges -- which makes adding support for this bridge (almost) trivial --- arch/i386/kernel/cpu/cpufreq/speedstep.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/arch/i386/kernel/cpu/cpufreq/speedstep.c b/arch/i386/kernel/cpu/cpufreq/speedstep.c index e1a0ea5aa7051..433b86eec2a23 100644 --- a/arch/i386/kernel/cpu/cpufreq/speedstep.c +++ b/arch/i386/kernel/cpu/cpufreq/speedstep.c @@ -29,6 +29,9 @@ #include +#ifndef PCI_DEVICE_ID_INTEL_82801DB_12 +#define PCI_DEVICE_ID_INTEL_82801DB_12 0x24cc +#endif /* speedstep_chipset: * It is necessary to know which chipset is used. As accesses to @@ -40,7 +43,7 @@ static struct pci_dev *speedstep_chipset_dev; #define SPEEDSTEP_CHIPSET_ICH2M 0x00000002 #define SPEEDSTEP_CHIPSET_ICH3M 0x00000003 - +#define SPEEDSTEP_CHIPSET_ICH4M 0x00000004 /* speedstep_processor */ @@ -106,6 +109,7 @@ static int speedstep_get_state (unsigned int *state) switch (speedstep_chipset) { case SPEEDSTEP_CHIPSET_ICH2M: case SPEEDSTEP_CHIPSET_ICH3M: + case SPEEDSTEP_CHIPSET_ICH4M: /* get PMBASE */ pci_read_config_dword(speedstep_chipset_dev, 0x40, &pmbase); if (!(pmbase & 0x01)) @@ -166,6 +170,7 @@ static void speedstep_set_state (unsigned int state, int notify) switch (speedstep_chipset) { case SPEEDSTEP_CHIPSET_ICH2M: case SPEEDSTEP_CHIPSET_ICH3M: + case SPEEDSTEP_CHIPSET_ICH4M: /* get PMBASE */ pci_read_config_dword(speedstep_chipset_dev, 0x40, &pmbase); if (!(pmbase & 0x01)) @@ -245,6 +250,7 @@ static int speedstep_activate (void) switch (speedstep_chipset) { case SPEEDSTEP_CHIPSET_ICH2M: case SPEEDSTEP_CHIPSET_ICH3M: + case SPEEDSTEP_CHIPSET_ICH4M: { u16 value = 0; @@ -276,6 +282,14 @@ static int speedstep_activate (void) */ static unsigned int speedstep_detect_chipset (void) { + speedstep_chipset_dev = pci_find_subsys(PCI_VENDOR_ID_INTEL, + PCI_DEVICE_ID_INTEL_82801DB_12, + PCI_ANY_ID, + PCI_ANY_ID, + NULL); + if (speedstep_chipset_dev) + return SPEEDSTEP_CHIPSET_ICH4M; + speedstep_chipset_dev = pci_find_subsys(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801CA_12, PCI_ANY_ID, -- 2.53.0