android_kernel_cmhtcleo/drivers/cpufreq/Kconfig

253 lines
7.9 KiB
Plaintext
Raw Normal View History

2010-08-27 09:19:57 +00:00
config CPU_FREQ
bool "CPU Frequency scaling"
help
CPU Frequency scaling allows you to change the clock speed of
CPUs on the fly. This is a nice method to save power, because
the lower the CPU clock speed, the less power the CPU consumes.
Note that this driver doesn't automatically change the CPU
clock speed, you need to either enable a dynamic cpufreq governor
(see below) after boot, or use a userspace tool.
For details, take a look at <file:Documentation/cpu-freq>.
If in doubt, say N.
if CPU_FREQ
config CPU_FREQ_TABLE
tristate
config CPU_FREQ_DEBUG
bool "Enable CPUfreq debugging"
help
Say Y here to enable CPUfreq subsystem (including drivers)
debugging. You will need to activate it via the kernel
command line by passing
cpufreq.debug=<value>
To get <value>, add
1 to activate CPUfreq core debugging,
2 to activate CPUfreq drivers debugging, and
4 to activate CPUfreq governor debugging
config CPU_FREQ_STAT
tristate "CPU frequency translation statistics"
select CPU_FREQ_TABLE
default y
help
This driver exports CPU frequency statistics information through sysfs
file system.
To compile this driver as a module, choose M here: the
module will be called cpufreq_stats.
If in doubt, say N.
config CPU_FREQ_STAT_DETAILS
bool "CPU frequency translation statistics details"
depends on CPU_FREQ_STAT
help
This will show detail CPU frequency translation table in sysfs file
system.
If in doubt, say N.
choice
prompt "Default CPUFreq governor"
default CPU_FREQ_DEFAULT_GOV_USERSPACE if CPU_FREQ_SA1100 || CPU_FREQ_SA1110
default CPU_FREQ_DEFAULT_GOV_PERFORMANCE
help
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 EMBEDDED
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
help
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 ondemand
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_CONSERVATIVE
bool "conservative"
select CPU_FREQ_GOV_CONSERVATIVE
select CPU_FREQ_GOV_PERFORMANCE
help
Use the CPUFreq governor 'conservative' 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
governor. If unsure have a look at the help section of the
driver. Fallback governor will be the performance governor.
2010-09-19 22:21:52 +00:00
config CPU_FREQ_DEFAULT_GOV_SMARTASS
bool "smartass"
select CPU_FREQ_GOV_SMARTASS
select CPU_FREQ_GOV_PERFORMANCE
help
Use the CPUFreq governor 'smartass' as default.
config CPU_FREQ_DEFAULT_GOV_INTERACTIVE
bool "interactive"
select CPU_FREQ_GOV_INTERACTIVE
help
cpufreq: interactive: Changes to interactive governor Changes include: * May scale up to intermediate speeds after scaling down, rather than scale to max speed and then only scale down until max speed needed. * Tweaked thresholds at which max speed requested (previously CPU must have been 100% busy since idle exit timer started, now will go max if at least 85% busy) and default minimum sample time raised to 80ms. Tweaking based on UI tests, still in progress. * SMP fixes. * Fixed attempted multiple delete of sysfs group on governor stop. Set a just-in-case-CPU-goes-busy-again timer even if nr_running == 0 at timer function run time, but cancel if that CPU goes idle (and don't re-arm timer if that CPU is currently idle). * Re-evaluate speed if a CPU goes idle while above min speed (and no timer currently set) in case the platform requires all CPUs to be at the same speed. * Realtime workqueues disappeared upstream, convert speed up workqueue to a realtime task. Average scheduling latency measured significantly less than WQ_HIGHPRI. * Timers are not deferrable, must wake CPU from idle, since we now re-evaluate speed for idle CPUs. * CPU load is computed from higher of short-term load since idle exit vs. long-term load since last frequency change, to avoid dropping speed during temporary dips in load on long-term-busy CPU. * Avoid 1 CPU starting new idle exit load eval interval in a race with timer running on another CPU. * New fugly debugging printfs should be reworked or go away eventually. Change-Id: I606b5c1850637c35a7814309df12362d5c044825 via: https://review.source.android.com//#change,15809
2010-11-06 23:22:42 +00:00
Use the CPUFreq governor 'interactive' as default. This allows
you to get a full dynamic cpu frequency capable system by simply
loading your cpufreq low-level hardware driver, using the
'interactive' governor for latency-sensitive workloads.
2010-08-27 09:19:57 +00:00
endchoice
config CPU_FREQ_DEFAULT_GOV_INTERACTIVEX
bool "interactiveX"
select CPU_FREQ_GOV_INTERACTIVEX
help
Use the CPUFreq governor 'interactiveX' as default. This allows
you to get a full dynamic cpu frequency capable system by simply
loading your cpufreq low-level hardware driver, using the
'interactiveX' governor for latency-sensitive workloads.
2010-08-27 09:19:57 +00:00
config CPU_FREQ_GOV_PERFORMANCE
tristate "'performance' governor"
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.
If in doubt, say Y.
config CPU_FREQ_GOV_POWERSAVE
tristate "'powersave' governor"
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.
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.
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).
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_INTERACTIVE
tristate "'interactive' cpufreq governor"
help
cpufreq: interactive: Changes to interactive governor Changes include: * May scale up to intermediate speeds after scaling down, rather than scale to max speed and then only scale down until max speed needed. * Tweaked thresholds at which max speed requested (previously CPU must have been 100% busy since idle exit timer started, now will go max if at least 85% busy) and default minimum sample time raised to 80ms. Tweaking based on UI tests, still in progress. * SMP fixes. * Fixed attempted multiple delete of sysfs group on governor stop. Set a just-in-case-CPU-goes-busy-again timer even if nr_running == 0 at timer function run time, but cancel if that CPU goes idle (and don't re-arm timer if that CPU is currently idle). * Re-evaluate speed if a CPU goes idle while above min speed (and no timer currently set) in case the platform requires all CPUs to be at the same speed. * Realtime workqueues disappeared upstream, convert speed up workqueue to a realtime task. Average scheduling latency measured significantly less than WQ_HIGHPRI. * Timers are not deferrable, must wake CPU from idle, since we now re-evaluate speed for idle CPUs. * CPU load is computed from higher of short-term load since idle exit vs. long-term load since last frequency change, to avoid dropping speed during temporary dips in load on long-term-busy CPU. * Avoid 1 CPU starting new idle exit load eval interval in a race with timer running on another CPU. * New fugly debugging printfs should be reworked or go away eventually. Change-Id: I606b5c1850637c35a7814309df12362d5c044825 via: https://review.source.android.com//#change,15809
2010-11-06 23:22:42 +00:00
'interactive' - This driver adds a dynamic cpufreq policy governor
designed for latency-sensitive workloads
config CPU_FREQ_GOV_INTERACTIVEX
tristate "'interactiveX' cpufreq policy governor"
help
'interactiveX' - Modified version of interactive with sleep+wake code.
2010-08-27 09:19:57 +00:00
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_VDD_LEVELS
bool "CPU Vdd levels sysfs interface"
depends on CPU_FREQ_STAT
depends on ARCH_QSD8X50
default n
help
CPU Vdd levels sysfs interface
2010-09-19 22:21:52 +00:00
config CPU_FREQ_GOV_SMARTASS
tristate "'smartass' cpufreq governor"
depends on CPU_FREQ
help
'smartass' - a "smart" optimized governor for the hero!
If in doubt, say N.
config CPU_FREQ_MIN_TICKS
int "Ticks between governor polling interval."
default 10
help
Minimum number of ticks between polling interval for governors.
2010-08-27 09:19:57 +00:00
endif # CPU_FREQ