Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754205AbZFHSgR (ORCPT ); Mon, 8 Jun 2009 14:36:17 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752038AbZFHSgD (ORCPT ); Mon, 8 Jun 2009 14:36:03 -0400 Received: from smtp1.linux-foundation.org ([140.211.169.13]:57714 "EHLO smtp1.linux-foundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751893AbZFHSgC (ORCPT ); Mon, 8 Jun 2009 14:36:02 -0400 Date: Mon, 8 Jun 2009 11:35:12 -0700 (PDT) From: Linus Torvalds X-X-Sender: torvalds@localhost.localdomain To: Harald Welte cc: "Michael S. Zick" , Duane Griffin , Linux Kernel Mailing List , Dave Jones Subject: Re: [PATCH 1/2] CPUFREQ: Enable acpi-cpufreq driver for VIA/Centaur CPUs In-Reply-To: <20090608102754.GP4106@prithivi.gnumonks.org> Message-ID: References: <20090606132847.GB14088@prithivi.gnumonks.org> <200906060846.36303.lkml@morethan.org> <200906060856.15016.lkml@morethan.org> <20090608102754.GP4106@prithivi.gnumonks.org> User-Agent: Alpine 2.01 (LFD 1184 2008-12-16) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2052 Lines: 56 On Mon, 8 Jun 2009, Harald Welte wrote: > > The VIA/Centaur C7, C7-M and Nano CPU's all support ACPI based cpu p-states > using a MSR interface. The Linux driver just never made use of it, since in > addition to the check for the EST flag it also checked if the vendor is Intel. > > Signed-off-by: Harald Welte > --- > arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c | 3 ++- > 1 files changed, 2 insertions(+), 1 deletions(-) > > diff --git a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c > index 208ecf6..ee03585 100644 > --- a/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c > +++ b/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.c > @@ -90,7 +90,8 @@ static int check_est_cpu(unsigned int cpuid) > { > struct cpuinfo_x86 *cpu = &cpu_data(cpuid); > > - if (cpu->x86_vendor != X86_VENDOR_INTEL || > + if ((cpu->x86_vendor != X86_VENDOR_INTEL && > + cpu->x86_vendor != X86_VENDOR_CENTAUR) || > !cpu_has(cpu, X86_FEATURE_EST)) Hmm. This all really should be just static int check_est_cpu(unsigned int cpuid) { struct cpuinfo_x86 *cpu = &cpu_data(cpuid); return cpu_has(cpu, X86_FEATURE_EST); } I suspect, with no vendor tests. That's the whole _point_ of CPU features, after all. If some vendor claims EST but doesn't actually support the EST interfaces, we should just have fixups to clear the bit in the per-vendor cpuinfo code, not in some random driver. The only thing that makes me nervous about this is how close to 2.6.30 we are. I'd be happier if this was resolved by doing this as a patch post-2.6.30, and then adding 'stable@kernel.org' as a Cc: tag, and backporting it to 2.6.30.1 if no problems appear. It's not like this is a regression, I think. Does that sound like a reasonable plan? Linus -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/