All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gary Hade <garyhade@us.ibm.com>
To: Len Brown <lenb@kernel.org>
Cc: cpufreq@lists.linux.org.uk,
	Dominik Brodowski <linux@dominikbrodowski.net>,
	davej@redhat.com
Subject: Re: [PATCH] speedstep-centrino should ignore upper performance control bits
Date: Tue, 7 Nov 2006 10:49:02 -0800	[thread overview]
Message-ID: <20061107184902.GA11620@us.ibm.com> (raw)
In-Reply-To: <200611070209.39817.len.brown@intel.com>

On Tue, Nov 07, 2006 at 02:09:39AM -0500, Len Brown wrote:
> On Monday 06 November 2006 21:14, Dominik Brodowski wrote:
> > On Mon, Nov 06, 2006 at 03:39:23PM -0800, Gary Hade wrote:
> > > 
> > > On some systems such as the IBM x3650 there are bits set in the 
> > > upper half of the control values provided by the _PSS object.  
> > > These bits are only relevant for cpufreq drivers that use IO ports 
> > > which are not currently supported by the speedstep-centrino driver.  
> > ... and probably never will.
> > 
> > > The current MSR oriented code assumes that upper bits are not set 
> > > and thus fails to work correctly when they are.  e.g. the control 
> > > and status value equality check fails even though the ACPI spec 
> > > allows the inequality.
> 
> > How does the acpi-cpufreq driver work with it?
> 
> acpu-cpufreq.c in Linus' tree is still IO only.

True.  On the x3650 this version of acpi-cpufreq fails to load 
with a "No such device" error after debug message complaints
about lack of ACPI_ADR_SPACE_FIXED_HARDWARE address space support.
               ...
  cpufreq-core: adding CPU 0
  acpi-cpufreq: acpi_cpufreq_cpu_init
  acpi-cpufreq: Unsupported address space [127, 127]
  cpufreq-core: initialization failed
               ...

This problem is resolved in the later version mentioned below.

> acpi-cpufreq. in Dave's tree changed to do this:
> where  #define INTEL_MSR_RANGE                (0xffff)
> 
> -        cmd.addr.port = perf->control_register.address;
> -        cmd.addr.bit_width = perf->control_register.bit_width;
> -        cmd.val = (u32) perf->states[next_perf_state].control;
> +        switch (data->cpu_feature) {
> +            case SYSTEM_INTEL_MSR_CAPABLE:
> +                cmd.type = SYSTEM_INTEL_MSR_CAPABLE;
> +                cmd.addr.msr.reg = MSR_IA32_PERF_CTL;
> +                msr = (u32) perf->states[next_perf_state].control & INTEL_MSR_RANGE;
> +                cmd.val = (cmd.val & ~INTEL_MSR_RANGE) | msr;
> +                break;
> +            case SYSTEM_IO_CAPABLE:
> +                cmd.type = SYSTEM_IO_CAPABLE;
> +                cmd.addr.io.port = perf->control_register.address;
> +                cmd.addr.io.bit_width = perf->control_register.bit_width;
> +                cmd.val = (u32) perf->states[next_perf_state].control;
> +                break;

The acpi-cpufreq in 2.6.19-rc4-mm2 which contains these changes 
appears to work fine on the x3650. 

Gary

-- 
Gary Hade
IBM Linux Technology Center
503-578-4503  IBM T/L: 775-4503
garyhade@us.ibm.com
http://www.ibm.com/linux/ltc

  reply	other threads:[~2006-11-07 18:49 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-11-06 23:39 [PATCH] speedstep-centrino should ignore upper performance control bits Gary Hade
2006-11-07  2:14 ` Dominik Brodowski
2006-11-07  7:09   ` Len Brown
2006-11-07 18:49     ` Gary Hade [this message]
2006-11-08 23:21       ` Gary Hade
2006-11-08 23:29         ` Dave Jones
2006-11-09  0:00           ` Gary Hade
2006-11-09  0:22             ` Dave Jones
2006-11-10 19:20               ` Gary Hade
2006-11-07 18:57 ` Gary Hade

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20061107184902.GA11620@us.ibm.com \
    --to=garyhade@us.ibm.com \
    --cc=cpufreq@lists.linux.org.uk \
    --cc=davej@redhat.com \
    --cc=lenb@kernel.org \
    --cc=linux@dominikbrodowski.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.