menu "CPU Frequency scaling"
config [31mCONFIG_CPU_FREQ[0m
bool "CPU Frequency scaling"
select [31mCONFIG_SRCU[0m
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 [31mCONFIG_CPU_FREQ[0m
config [31mCONFIG_CPU_FREQ_GOV_ATTR_SET[0m
bool
config [31mCONFIG_CPU_FREQ_GOV_COMMON[0m
select [31mCONFIG_CPU_FREQ_GOV_ATTR_SET[0m
select [31mCONFIG_IRQ_WORK[0m
bool
config [31mCONFIG_CPU_FREQ_BOOST_SW[0m
bool
depends on [31mCONFIG_THERMAL[0m
config [31mCONFIG_CPU_FREQ_STAT[0m
bool "CPU frequency transition statistics"
help
Export CPU frequency statistics information through sysfs.
If in doubt, say N.
config [31mCONFIG_CPU_FREQ_STAT_DETAILS[0m
bool "CPU frequency transition statistics details"
depends on [31mCONFIG_CPU_FREQ_STAT[0m
help
Show detailed CPU frequency transition table in sysfs.
If in doubt, say N.
choice
prompt "Default CPUFreq governor"
default [31mCONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE[0m if [31mCONFIG_ARM_SA1100_CPUFREQ[0m || [31mCONFIG_ARM_SA1110_CPUFREQ[0m
default [31mCONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE[0m
help
This option sets which CPUFreq governor shall be loaded at
startup. If in doubt, select 'performance'.
config [31mCONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE[0m
bool "performance"
select [31mCONFIG_CPU_FREQ_GOV_PERFORMANCE[0m
help
Use the CPUFreq governor 'performance' as default. This sets
the frequency statically to the highest frequency supported by
the CPU.
config [31mCONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE[0m
bool "powersave"
select [31mCONFIG_CPU_FREQ_GOV_POWERSAVE[0m
help
Use the CPUFreq governor 'powersave' as default. This sets
the frequency statically to the lowest frequency supported by
the CPU.
config [31mCONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE[0m
bool "userspace"
select [31mCONFIG_CPU_FREQ_GOV_USERSPACE[0m
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 [31mCONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND[0m
bool "ondemand"
select [31mCONFIG_CPU_FREQ_GOV_ONDEMAND[0m
select [31mCONFIG_CPU_FREQ_GOV_PERFORMANCE[0m
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 [31mCONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE[0m
bool "conservative"
select [31mCONFIG_CPU_FREQ_GOV_CONSERVATIVE[0m
select [31mCONFIG_CPU_FREQ_GOV_PERFORMANCE[0m
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.
config [31mCONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL[0m
bool "schedutil"
depends on [31mCONFIG_SMP[0m
select [31mCONFIG_CPU_FREQ_GOV_SCHEDUTIL[0m
select [31mCONFIG_CPU_FREQ_GOV_PERFORMANCE[0m
help
Use the 'schedutil' CPUFreq governor by default. If unsure,
have a look at the help section of that governor. The fallback
governor will be 'performance'.
endchoice
config [31mCONFIG_CPU_FREQ_GOV_PERFORMANCE[0m
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 [31mCONFIG_M[0m here: the
module will be called cpufreq_performance.
If in doubt, say Y.
config [31mCONFIG_CPU_FREQ_GOV_POWERSAVE[0m
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 [31mCONFIG_M[0m here: the
module will be called cpufreq_powersave.
If in doubt, say Y.
config [31mCONFIG_CPU_FREQ_GOV_USERSPACE[0m
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 [31mCONFIG_M[0m here: the
module will be called cpufreq_userspace.
For details, take a look at <file:Documentation/cpu-freq/>.
If in doubt, say Y.
config [31mCONFIG_CPU_FREQ_GOV_ONDEMAND[0m
tristate "'ondemand' cpufreq policy governor"
select [31mCONFIG_CPU_FREQ_GOV_COMMON[0m
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 [31mCONFIG_M[0m here: the
module will be called cpufreq_ondemand.
For details, take a look at linux/Documentation/cpu-freq.
If in doubt, say N.
config [31mCONFIG_CPU_FREQ_GOV_CONSERVATIVE[0m
tristate "'conservative' cpufreq governor"
depends on [31mCONFIG_CPU_FREQ[0m
select [31mCONFIG_CPU_FREQ_GOV_COMMON[0m
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 [31mCONFIG_M[0m here: the
module will be called cpufreq_conservative.
For details, take a look at linux/Documentation/cpu-freq.
If in doubt, say N.
config [31mCONFIG_CPU_FREQ_GOV_SCHEDUTIL[0m
bool "'schedutil' cpufreq policy governor"
depends on [31mCONFIG_CPU_FREQ[0m && [31mCONFIG_SMP[0m
select [31mCONFIG_CPU_FREQ_GOV_ATTR_SET[0m
select [31mCONFIG_IRQ_WORK[0m
help
This governor makes decisions based on the utilization data provided
by the scheduler. It sets the CPU frequency to be proportional to
the utilization/capacity ratio coming from the scheduler. If the
utilization is frequency-invariant, the new frequency is also
proportional to the maximum available frequency. If that is not the
case, it is proportional to the current frequency of the CPU. The
frequency tipping point is at utilization/capacity equal to 80% in
both cases.
If in doubt, say N.
comment "CPU frequency scaling drivers"
config [31mCONFIG_CPUFREQ_DT[0m
tristate "Generic DT based cpufreq driver"
depends on [31mCONFIG_HAVE_CLK[0m && [31mCONFIG_OF[0m
# if [31mCONFIG_CPU_THERMAL[0m is on and [31mCONFIG_THERMAL[0m=m, [31mCONFIG_CPUFREQ_DT[0m cannot be =y:
depends on ![31mCONFIG_CPU_THERMAL[0m || [31mCONFIG_THERMAL[0m
select [31mCONFIG_CPUFREQ_DT_PLATDEV[0m
select [31mCONFIG_PM_OPP[0m
help
This adds a generic DT based cpufreq driver for frequency management.
It supports both uniprocessor (UP) and symmetric multiprocessor ([31mCONFIG_SMP[0m)
systems.
If in doubt, say N.
config [31mCONFIG_CPUFREQ_DT_PLATDEV[0m
bool
help
This adds a generic DT based cpufreq platdev driver for frequency
management. This creates a 'cpufreq-dt' platform device, on the
supported platforms.
If in doubt, say N.
if [31mCONFIG_X86[0m
source "drivers/cpufreq/Kconfig.x86"
endif
if [31mCONFIG_ARM[0m || [31mCONFIG_ARM64[0m
source "drivers/cpufreq/Kconfig.arm"
endif
if [31mCONFIG_PPC32[0m || [31mCONFIG_PPC64[0m
source "drivers/cpufreq/Kconfig.powerpc"
endif
if [31mCONFIG_AVR32[0m
config [31mCONFIG_AVR32_AT32AP_CPUFREQ[0m
bool "CPU frequency driver for AT32AP"
depends on [31mCONFIG_PLATFORM_AT32AP[0m
default n
help
This enables the CPU frequency driver for AT32AP processors.
If in doubt, say N.
endif
if [31mCONFIG_IA64[0m
config [31mCONFIG_IA64_ACPI_CPUFREQ[0m
tristate "ACPI Processor P-States driver"
depends on [31mCONFIG_ACPI_PROCESSOR[0m
help
This driver adds a CPUFreq driver which utilizes the [31mCONFIG_ACPI[0m
Processor Performance States.
For details, take a look at <file:Documentation/cpu-freq/>.
If in doubt, say N.
endif
if [31mCONFIG_MIPS[0m
config [31mCONFIG_LOONGSON2_CPUFREQ[0m
tristate "Loongson2 CPUFreq Driver"
help
This option adds a CPUFreq driver for loongson processors which
support software configurable cpu frequency.
Loongson2F and it's successors support this feature.
For details, take a look at <file:Documentation/cpu-freq/>.
If in doubt, say N.
config [31mCONFIG_LOONGSON1_CPUFREQ[0m
tristate "Loongson1 CPUFreq Driver"
help
This option adds a CPUFreq driver for loongson1 processors which
support software configurable cpu frequency.
For details, take a look at <file:Documentation/cpu-freq/>.
If in doubt, say N.
endif
if [31mCONFIG_SPARC64[0m
config [31mCONFIG_SPARC_US3_CPUFREQ[0m
tristate "UltraSPARC-III CPU Frequency driver"
help
This adds the CPUFreq driver for UltraSPARC-III processors.
For details, take a look at <file:Documentation/cpu-freq>.
If in doubt, say N.
config [31mCONFIG_SPARC_US2E_CPUFREQ[0m
tristate "UltraSPARC-IIe CPU Frequency driver"
help
This adds the CPUFreq driver for UltraSPARC-IIe processors.
For details, take a look at <file:Documentation/cpu-freq>.
If in doubt, say N.
endif
if [31mCONFIG_SUPERH[0m
config [31mCONFIG_SH_CPU_FREQ[0m
tristate "SuperH CPU Frequency driver"
help
This adds the cpufreq driver for SuperH. Any CPU that supports
clock rate rounding through the clock framework can use this
driver. While it will make the kernel slightly larger, this is
harmless for CPUs that don't support rate rounding. The driver
will also generate a notice in the boot log before disabling
itself if the CPU in question is not capable of rate rounding.
For details, take a look at <file:Documentation/cpu-freq>.
If unsure, say N.
endif
config [31mCONFIG_QORIQ_CPUFREQ[0m
tristate "CPU frequency scaling driver for Freescale QorIQ SoCs"
depends on [31mCONFIG_OF[0m && [31mCONFIG_COMMON_CLK[0m && ([31mCONFIG_PPC_E500MC[0m || [31mCONFIG_ARM[0m)
depends on ![31mCONFIG_CPU_THERMAL[0m || [31mCONFIG_THERMAL[0m
select [31mCONFIG_CLK_QORIQ[0m
help
This adds the CPUFreq driver support for Freescale QorIQ SoCs
which are capable of changing the CPU's frequency dynamically.
endif
endmenu