@@ -24,6 +24,13 @@ config INTERACTION_HINTS
bool "Provide interaction hints to governors"
default y

config CPU_FREQ_DVFS_MONITOR
bool "dvfs monitor"
depends on CPU_FREQ
help
This option adds a proc node for dvfs monitoring.
/proc/dvfs_mon

config CPU_FREQ_STAT
tristate "CPU frequency translation statistics"
select CPU_FREQ_TABLE
@@ -73,43 +80,17 @@ choice
This option sets which CPUFreq governor shall be loaded at
startup. If in doubt, select 'performance'.

config CPU_FREQ_DEFAULT_GOV_PERFORMANCE
bool "performance"
select CPU_FREQ_GOV_PERFORMANCE
help
Use the CPUFreq governor 'performance' as default. This sets
the frequency statically to the highest frequency supported by
the CPU.

config CPU_FREQ_DEFAULT_GOV_POWERSAVE
bool "powersave"
depends on EXPERT
select CPU_FREQ_GOV_POWERSAVE
help
Use the CPUFreq governor 'powersave' as default. This sets
the frequency statically to the lowest frequency supported by
the CPU.

config CPU_FREQ_DEFAULT_GOV_USERSPACE
bool "userspace"
select CPU_FREQ_GOV_USERSPACE
help
Use the CPUFreq governor 'userspace' as default. This allows
you to set the CPU frequency manually or when a userspace
program shall be able to set the CPU dynamically without having
to enable the userspace governor manually.

config CPU_FREQ_DEFAULT_GOV_ONDEMAND
bool "ondemand"
select CPU_FREQ_GOV_ONDEMAND
select CPU_FREQ_GOV_PERFORMANCE
config CPU_FREQ_DEFAULT_GOV_CHILL
bool "chill"
select CPU_FREQ_GOV_CHILL
select CPU_FREQ_GOV_INTERACTIVE
help
Use the CPUFreq governor 'ondemand' as default. This allows
Use the CPUFreq governor 'chill' as default. This allows
you to get a full dynamic frequency capable system by simply
loading your cpufreq low-level hardware driver.
Be aware that not all cpufreq drivers support the ondemand
Be aware that not all cpufreq drivers support the conservative
governor. If unsure have a look at the help section of the
driver. Fallback governor will be the performance governor.
driver. Fallback governor will be the interactive governor.

config CPU_FREQ_DEFAULT_GOV_CONSERVATIVE
bool "conservative"
@@ -123,6 +104,20 @@ config CPU_FREQ_DEFAULT_GOV_CONSERVATIVE
governor. If unsure have a look at the help section of the
driver. Fallback governor will be the performance governor.

config CPU_FREQ_DEFAULT_GOV_DESPAIR
bool "despair"
select CPU_FREQ_GOV_DESPAIR
help

config CPU_FREQ_DEFAULT_GOV_ELEMENTALX
bool "despair"
select CPU_FREQ_GOV_ELEMENTALX
help

config CPU_FREQ_DEFAULT_GOV_FREELUNCH
bool "freelunch"
select CPU_FREQ_GOV_FREELUNCH

config CPU_FREQ_DEFAULT_GOV_INTERACTIVE
bool "interactive"
select CPU_FREQ_GOV_INTERACTIVE
@@ -138,21 +133,34 @@ config CPU_FREQ_DEFAULT_GOV_LIONFISH
help
Use the CPUFreq governor 'lionfish' as default.

config CPU_FREQ_DEFAULT_GOV_FREELUNCH
bool "freelunch"
select CPU_FREQ_GOV_FREELUNCH

config CPU_FREQ_DEFAULT_GOV_CHILL
bool "chill"
select CPU_FREQ_GOV_CHILL
select CPU_FREQ_GOV_INTERACTIVE
config CPU_FREQ_DEFAULT_GOV_ONDEMAND
bool "ondemand"
select CPU_FREQ_GOV_ONDEMAND
select CPU_FREQ_GOV_PERFORMANCE
help
Use the CPUFreq governor 'chill' as default. This allows
Use the CPUFreq governor 'ondemand' as default. This allows
you to get a full dynamic frequency capable system by simply
loading your cpufreq low-level hardware driver.
Be aware that not all cpufreq drivers support the conservative
Be aware that not all cpufreq drivers support the ondemand
governor. If unsure have a look at the help section of the
driver. Fallback governor will be the interactive governor.
driver. Fallback governor will be the performance governor.

config CPU_FREQ_DEFAULT_GOV_PERFORMANCE
bool "performance"
select CPU_FREQ_GOV_PERFORMANCE
help
Use the CPUFreq governor 'performance' as default. This sets
the frequency statically to the highest frequency supported by
the CPU.

config CPU_FREQ_DEFAULT_GOV_POWERSAVE
bool "powersave"
depends on EXPERT
select CPU_FREQ_GOV_POWERSAVE
help
Use the CPUFreq governor 'powersave' as default. This sets
the frequency statically to the lowest frequency supported by
the CPU.

config CPU_FREQ_DEFAULT_GOV_RELAXED
bool "relaxed"
@@ -166,68 +174,67 @@ config CPU_FREQ_DEFAULT_GOV_RELAXED
governor. If unsure have a look at the help section of the
driver. Fallback governor will be the interactive governor.

config CPU_FREQ_DEFAULT_GOV_DESPAIR
bool "despair"
select CPU_FREQ_GOV_DESPAIR
config CPU_FREQ_DEFAULT_GOV_TIERSERVATIVE
bool "tierservative"
select CPU_FREQ_GOV_TIERSERVATIVE
select WMAVG
help
Here be dragons.

endchoice

config CPU_FREQ_GOV_PERFORMANCE
tristate "'performance' governor"
config CPU_FREQ_DEFAULT_GOV_USERSPACE
bool "userspace"
select CPU_FREQ_GOV_USERSPACE
help
This cpufreq governor sets the frequency statically to the
highest available CPU frequency.

To compile this driver as a module, choose M here: the
module will be called cpufreq_performance.
Use the CPUFreq governor 'userspace' as default. This allows
you to set the CPU frequency manually or when a userspace
program shall be able to set the CPU dynamically without having
to enable the userspace governor manually.

If in doubt, say Y.
endchoice

config CPU_FREQ_GOV_POWERSAVE
tristate "'powersave' governor"
config CPU_FREQ_GOV_CHILL
tristate "'chill' cpufreq governor"
depends on CPU_FREQ
default y
help
This cpufreq governor sets the frequency statically to the
lowest available CPU frequency.

To compile this driver as a module, choose M here: the
module will be called cpufreq_powersave.

If in doubt, say Y.
'chill' - similar to 'conservative', but optimized for devices
that go into suspended or display off states often.

config CPU_FREQ_GOV_USERSPACE
tristate "'userspace' governor for userspace frequency scaling"
config CPU_FREQ_GOV_CONSERVATIVE
tristate "'conservative' cpufreq governor"
depends on CPU_FREQ
help
Enable this cpufreq governor when you either want to set the
CPU frequency manually or when a userspace program shall
be able to set the CPU dynamically, like on LART
<http://www.lartmaker.nl/>.

To compile this driver as a module, choose M here: the
module will be called cpufreq_userspace.

For details, take a look at <file:Documentation/cpu-freq/>.

If in doubt, say Y.
'conservative' - this driver is rather similar to the 'ondemand'
governor both in its source code and its purpose, the difference is
its optimisation for better suitability in a battery powered
environment. The frequency is gracefully increased and decreased
rather than jumping to 100% when speed is required.

config CPU_FREQ_GOV_ONDEMAND
tristate "'ondemand' cpufreq policy governor"
select CPU_FREQ_TABLE
help
'ondemand' - This driver adds a dynamic cpufreq policy governor.
The governor does a periodic polling and
changes frequency based on the CPU utilization.
The support for this governor depends on CPU capability to
do fast frequency switching (i.e, very low latency frequency
transitions).
If you have a desktop machine then you should really be considering
the 'ondemand' governor instead, however if you are using a laptop,
PDA or even an AMD64 based computer (due to the unacceptable
step-by-step latency issues between the minimum and maximum frequency
transitions in the CPU) you will probably want to use this governor.

To compile this driver as a module, choose M here: the
module will be called cpufreq_ondemand.
module will be called cpufreq_conservative.

For details, take a look at linux/Documentation/cpu-freq.

If in doubt, say N.

config CPU_FREQ_GOV_DESPAIR
tristate "'despair' cpufreq governor"
depends on CPU_FREQ

config CPU_FREQ_GOV_ELEMENTALX
tristate "'elementalx' cpufreq policy governor"
select CPU_FREQ_TABLE

config CPU_FREQ_GOV_FREELUNCH
tristate "'freelunch' cpufreq governor"
depends on CPU_FREQ && INTERACTION_HINTS

config CPU_FREQ_GOV_INTERACTIVE
tristate "'interactive' cpufreq policy governor"
help
@@ -245,29 +252,6 @@ config CPU_FREQ_GOV_INTERACTIVE

If in doubt, say N.

config CPU_FREQ_GOV_CONSERVATIVE
tristate "'conservative' cpufreq governor"
depends on CPU_FREQ
help
'conservative' - this driver is rather similar to the 'ondemand'
governor both in its source code and its purpose, the difference is
its optimisation for better suitability in a battery powered
environment. The frequency is gracefully increased and decreased
rather than jumping to 100% when speed is required.

If you have a desktop machine then you should really be considering
the 'ondemand' governor instead, however if you are using a laptop,
PDA or even an AMD64 based computer (due to the unacceptable
step-by-step latency issues between the minimum and maximum frequency
transitions in the CPU) you will probably want to use this governor.

To compile this driver as a module, choose M here: the
module will be called cpufreq_conservative.

For details, take a look at linux/Documentation/cpu-freq.

If in doubt, say N.

config CPU_FREQ_GOV_LIONFISH
tristate "'lionfish' governor"
depends on CPU_FREQ
@@ -290,31 +274,45 @@ config CPU_FREQ_GOV_LIONFISH

If in doubt, say N.

config CPU_FREQ_GOV_FREELUNCH
tristate "'freelunch' cpufreq governor"
depends on CPU_FREQ && INTERACTION_HINTS

config CPU_FREQ_DVFS_MONITOR
bool "dvfs monitor"
depends on CPU_FREQ
config CPU_FREQ_GOV_ONDEMAND
tristate "'ondemand' cpufreq policy governor"
select CPU_FREQ_TABLE
help
This option adds a proc node for dvfs monitoring.
/proc/dvfs_mon
'ondemand' - This driver adds a dynamic cpufreq policy governor.
The governor does a periodic polling and
changes frequency based on the CPU utilization.
The support for this governor depends on CPU capability to
do fast frequency switching (i.e, very low latency frequency
transitions).

config CPU_FREQ_GOV_TIERSERVATIVE
tristate "'tierservative' cpufreq governor"
depends on CPU_FREQ
select WMAVG
To compile this driver as a module, choose M here: the
module will be called cpufreq_ondemand.

For details, take a look at linux/Documentation/cpu-freq.

If in doubt, say N.

config CPU_FREQ_GOV_PERFORMANCE
tristate "'performance' governor"
help
Here be dragons.
This cpufreq governor sets the frequency statically to the
highest available CPU frequency.

config CPU_FREQ_GOV_CHILL
tristate "'chill' cpufreq governor"
depends on CPU_FREQ
default y
To compile this driver as a module, choose M here: the
module will be called cpufreq_performance.

If in doubt, say Y.

config CPU_FREQ_GOV_POWERSAVE
tristate "'powersave' governor"
help
'chill' - similar to 'conservative', but optimized for devices
that go into suspended or display off states often.
This cpufreq governor sets the frequency statically to the
lowest available CPU frequency.

To compile this driver as a module, choose M here: the
module will be called cpufreq_powersave.

If in doubt, say Y.

config CPU_FREQ_GOV_RELAXED
tristate "'relaxed' cpufreq governor"
@@ -324,13 +322,27 @@ config CPU_FREQ_GOV_RELAXED
'relaxed' - similar to 'conservative', but optimized for devices
that go into suspended or display off states often.

config CPU_FREQ_GOV_ELEMENTALX
tristate "'elementalx' cpufreq policy governor"
select CPU_FREQ_TABLE

config CPU_FREQ_GOV_DESPAIR
tristate "'despair' cpufreq governor"
config CPU_FREQ_GOV_TIERSERVATIVE
tristate "'tierservative' cpufreq governor"
depends on CPU_FREQ
select WMAVG
help
Here be dragons.

config CPU_FREQ_GOV_USERSPACE
tristate "'userspace' governor for userspace frequency scaling"
help
Enable this cpufreq governor when you either want to set the
CPU frequency manually or when a userspace program shall
be able to set the CPU dynamically, like on LART
<http://www.lartmaker.nl/>.

To compile this driver as a module, choose M here: the
module will be called cpufreq_userspace.

For details, take a look at <file:Documentation/cpu-freq/>.

If in doubt, say Y.

menu "x86 CPU frequency scaling drivers"
depends on X86
@@ -8,19 +8,19 @@ obj-$(CONFIG_CPU_BOOST_DRIVER) += cpu-boost.o
obj-$(CONFIG_CPU_FREQ_STAT) += cpufreq_stats.o

# CPUfreq governors
obj-$(CONFIG_CPU_FREQ_GOV_PERFORMANCE) += cpufreq_performance.o
obj-$(CONFIG_CPU_FREQ_GOV_POWERSAVE) += cpufreq_powersave.o
obj-$(CONFIG_CPU_FREQ_GOV_USERSPACE) += cpufreq_userspace.o
obj-$(CONFIG_CPU_FREQ_GOV_ONDEMAND) += cpufreq_ondemand.o
obj-$(CONFIG_CPU_FREQ_GOV_CHILL) += cpufreq_chill.o
obj-$(CONFIG_CPU_FREQ_GOV_CONSERVATIVE) += cpufreq_conservative.o
obj-$(CONFIG_CPU_FREQ_GOV_DESPAIR) += cpufreq_despair.o
obj-$(CONFIG_CPU_FREQ_GOV_ELEMENTALX) += cpufreq_elementalx.o
obj-$(CONFIG_CPU_FREQ_GOV_FREELUNCH) += cpufreq_freelunch.o
obj-$(CONFIG_CPU_FREQ_GOV_INTERACTIVE) += cpufreq_interactive.o
obj-$(CONFIG_CPU_FREQ_GOV_LIONFISH) += cpufreq_lionfish.o
obj-$(CONFIG_CPU_FREQ_GOV_FREELUNCH) += cpufreq_freelunch.o
obj-$(CONFIG_CPU_FREQ_GOV_TIERSERVATIVE)+= cpufreq_tierservative.o
obj-$(CONFIG_CPU_FREQ_GOV_CHILL) += cpufreq_chill.o
obj-$(CONFIG_CPU_FREQ_GOV_ONDEMAND) += cpufreq_ondemand.o
obj-$(CONFIG_CPU_FREQ_GOV_PERFORMANCE) += cpufreq_performance.o
obj-$(CONFIG_CPU_FREQ_GOV_POWERSAVE) += cpufreq_powersave.o
obj-$(CONFIG_CPU_FREQ_GOV_RELAXED) += cpufreq_relaxed.o
obj-$(CONFIG_CPU_FREQ_GOV_ELEMENTALX) += cpufreq_elementalx.o
obj-$(CONFIG_CPU_FREQ_GOV_DESPAIR) += cpufreq_despair.o
obj-$(CONFIG_CPU_FREQ_GOV_TIERSERVATIVE)+= cpufreq_tierservative.o
obj-$(CONFIG_CPU_FREQ_GOV_USERSPACE) += cpufreq_userspace.o

# CPUfreq cross-arch helpers
obj-$(CONFIG_CPU_FREQ_TABLE) += freq_table.o