summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorHarald Welte <HaraldWelte@viatech.com>2009-11-24 16:53:00 +0100
committerGreg Kroah-Hartman <gregkh@suse.de>2009-12-08 10:21:48 -0800
commit37ed9bf8e31377284ca719b823e6794386ee0d5b (patch)
tree0b8f50f98e0d5d3561e889a6fcaadadc3511672d /arch
parent57ce46ef790bc67038322ed59c26f6d8eed9ee61 (diff)
downloadlwn-37ed9bf8e31377284ca719b823e6794386ee0d5b.tar.gz
lwn-37ed9bf8e31377284ca719b823e6794386ee0d5b.zip
Enable ACPI PDC handshake for VIA/Centaur CPUs
commit d77b81974521c82fa6fda38dfff1b491dcc62a32 upstream. In commit 0de51088e6a82bc8413d3ca9e28bbca2788b5b53, we introduced the use of acpi-cpufreq on VIA/Centaur CPU's by removing a vendor check for VENDOR_INTEL. However, as it turns out, at least the Nano CPU's also need the PDC (processor driver capabilities) handshake in order to activate the methods required for acpi-cpufreq. Since arch_acpi_processor_init_pdc() contains another vendor check for Intel, the PDC is not initialized on VIA CPU's. The resulting behavior of a current mainline kernel on such systems is: acpi-cpufreq loads and it indicates CPU frequency changes. However, the CPU stays at a single frequency This trivial patch ensures that init_intel_pdc() is called on Intel and VIA/Centaur CPU's alike. Signed-off-by: Harald Welte <HaraldWelte@viatech.com> Signed-off-by: Dave Jones <davej@redhat.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/kernel/acpi/processor.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/x86/kernel/acpi/processor.c b/arch/x86/kernel/acpi/processor.c
index d296f4a195c9..d85d1b2432ba 100644
--- a/arch/x86/kernel/acpi/processor.c
+++ b/arch/x86/kernel/acpi/processor.c
@@ -79,7 +79,8 @@ void arch_acpi_processor_init_pdc(struct acpi_processor *pr)
struct cpuinfo_x86 *c = &cpu_data(pr->id);
pr->pdc = NULL;
- if (c->x86_vendor == X86_VENDOR_INTEL)
+ if (c->x86_vendor == X86_VENDOR_INTEL ||
+ c->x86_vendor == X86_VENDOR_CENTAUR)
init_intel_pdc(pr, c);
return;