Dynanic On-The-Fly Operating points for PowerOP

David Singleton
2006-08-08T18:12:31Z

The patches provided in the following three emails continue the unified,
simplified PowerOp concept of power management. The patches
can be found at:

http://source.mvista.com/~dsingleton

powerop-core.patch
powerop-cpufreq.patch
powerop-x86-centrino.patch

The patches break the working PowerOP feature into
three logical parts. The first patch is the powerop-core.patch
that adds support for an operating point in the standard linux
power management infrastructure (CONFIG_PM) and adds a new
function to perform transitioning to operating points other
than suspend to memory or disk.

The second patch, powerop-cpufreq.patch, adds the cpufreq
portion of the patch that makes cpufreq tables a set of PowerOp
operating points.

The third patch, powerop-x86-centrino.patch, adds
operating points for all the centrino-speedstep processors.

This set of patches has changed in the following ways.

1) The patch is now broken out of the cpufreq code and implements
operating points for whatever speedstep-centrino the system
detects upon boot.

2) The naming scheme for operating points has been unified to
provide a better interface to the PowerOp power manager daemon.
The names range from:

highest
high
medhigh
medium
medlow
low
lowest

PowerOp maps the supported processor frequencies onto this
namespace list. The set of centrino processors it supports have
supported sets of between four and six different operating points.

The PowerOP daemon, coming soon, can simply read the supported
set of operating points and make some simple rules based
decisions about when to transition to various operating points.

The goal of a unified name space is to provide a PowerOp manager
that runs out of the box, with very little setup by the user.

3) This patch supports the ability to provide dynamic, on-the-fly
operating points to the framework via a loadable module. The
operating
point parameters of frequency, voltage and transition latency
can be passed at insmod time to create any new operating point
the centrino hardware will support.

I think I finally understand the 'why' of hardware vendors asking
for a requirement of dynamic, on the fly, operating points.

I have two sets of hardware that support a wide range of
processor speeds and voltages depending on:

a) the rotary and dip switch setting of the board (the mainstone).

or

b) the revision or stepping of the hardware on the board.

Certain revs of hardware support different frequencies and
voltages.
Some steppings won't run all the frequencies.

The hardware vendors want to provide support for all the
frequencies and voltages that the system could support,
depending on the switch settings or rev of hardware without
having to change kernel code and recompile the kernel.

The new dynamic, on the fly, operating point module will allow
for this feature.

David