brintos

brintos / linux-shallow public Read only

0
0
Text · 10.4 KiB · 2561b21 Raw
345 lines · plain
1# SPDX-License-Identifier: GPL-2.0-only2menu "CPU Frequency scaling"3 4config CPU_FREQ5	bool "CPU Frequency scaling"6	help7	  CPU Frequency scaling allows you to change the clock speed of 8	  CPUs on the fly. This is a nice method to save power, because 9	  the lower the CPU clock speed, the less power the CPU consumes.10 11	  Note that this driver doesn't automatically change the CPU12	  clock speed, you need to either enable a dynamic cpufreq governor13	  (see below) after boot, or use a userspace tool.14 15	  For details, take a look at16	  <file:Documentation/admin-guide/pm/cpufreq.rst>.17 18	  If in doubt, say N.19 20if CPU_FREQ21 22config CPU_FREQ_GOV_ATTR_SET23	bool24 25config CPU_FREQ_GOV_COMMON26	select CPU_FREQ_GOV_ATTR_SET27	select IRQ_WORK28	bool29 30config CPU_FREQ_STAT31	bool "CPU frequency transition statistics"32	help33	  Export CPU frequency statistics information through sysfs.34 35	  If in doubt, say N.36 37choice38	prompt "Default CPUFreq governor"39	default CPU_FREQ_DEFAULT_GOV_USERSPACE if ARM_SA1110_CPUFREQ40	default CPU_FREQ_DEFAULT_GOV_SCHEDUTIL if ARM64 || ARM41	default CPU_FREQ_DEFAULT_GOV_SCHEDUTIL if (X86_INTEL_PSTATE || X86_AMD_PSTATE) && SMP42	default CPU_FREQ_DEFAULT_GOV_PERFORMANCE43	help44	  This option sets which CPUFreq governor shall be loaded at45	  startup. If in doubt, use the default setting.46 47config CPU_FREQ_DEFAULT_GOV_PERFORMANCE48	bool "performance"49	select CPU_FREQ_GOV_PERFORMANCE50	help51	  Use the CPUFreq governor 'performance' as default. This sets52	  the frequency statically to the highest frequency supported by53	  the CPU.54 55config CPU_FREQ_DEFAULT_GOV_POWERSAVE56	bool "powersave"57	select CPU_FREQ_GOV_POWERSAVE58	help59	  Use the CPUFreq governor 'powersave' as default. This sets60	  the frequency statically to the lowest frequency supported by61	  the CPU.62 63config CPU_FREQ_DEFAULT_GOV_USERSPACE64	bool "userspace"65	select CPU_FREQ_GOV_USERSPACE66	help67	  Use the CPUFreq governor 'userspace' as default. This allows68	  you to set the CPU frequency manually or when a userspace 69	  program shall be able to set the CPU dynamically without having70	  to enable the userspace governor manually.71 72config CPU_FREQ_DEFAULT_GOV_ONDEMAND73	bool "ondemand"74	depends on !(X86_INTEL_PSTATE && SMP)75	select CPU_FREQ_GOV_ONDEMAND76	select CPU_FREQ_GOV_PERFORMANCE77	help78	  Use the CPUFreq governor 'ondemand' as default. This allows79	  you to get a full dynamic frequency capable system by simply80	  loading your cpufreq low-level hardware driver.81	  Be aware that not all cpufreq drivers support the ondemand82	  governor. If unsure have a look at the help section of the83	  driver. Fallback governor will be the performance governor.84 85config CPU_FREQ_DEFAULT_GOV_CONSERVATIVE86	bool "conservative"87	depends on !(X86_INTEL_PSTATE && SMP)88	select CPU_FREQ_GOV_CONSERVATIVE89	select CPU_FREQ_GOV_PERFORMANCE90	help91	  Use the CPUFreq governor 'conservative' as default. This allows92	  you to get a full dynamic frequency capable system by simply93	  loading your cpufreq low-level hardware driver.94	  Be aware that not all cpufreq drivers support the conservative95	  governor. If unsure have a look at the help section of the96	  driver. Fallback governor will be the performance governor.97 98config CPU_FREQ_DEFAULT_GOV_SCHEDUTIL99	bool "schedutil"100	depends on SMP101	select CPU_FREQ_GOV_SCHEDUTIL102	select CPU_FREQ_GOV_PERFORMANCE103	help104	  Use the 'schedutil' CPUFreq governor by default. If unsure,105	  have a look at the help section of that governor. The fallback106	  governor will be 'performance'.107 108endchoice109 110config CPU_FREQ_GOV_PERFORMANCE111	tristate "'performance' governor"112	help113	  This cpufreq governor sets the frequency statically to the114	  highest available CPU frequency.115 116	  To compile this driver as a module, choose M here: the117	  module will be called cpufreq_performance.118 119	  If in doubt, say Y.120 121config CPU_FREQ_GOV_POWERSAVE122	tristate "'powersave' governor"123	help124	  This cpufreq governor sets the frequency statically to the125	  lowest available CPU frequency.126 127	  To compile this driver as a module, choose M here: the128	  module will be called cpufreq_powersave.129 130	  If in doubt, say Y.131 132config CPU_FREQ_GOV_USERSPACE133	tristate "'userspace' governor for userspace frequency scaling"134	help135	  Enable this cpufreq governor when you either want to set the136	  CPU frequency manually or when a userspace program shall137	  be able to set the CPU dynamically, like on LART 138	  <http://www.lartmaker.nl/>.139 140	  To compile this driver as a module, choose M here: the141	  module will be called cpufreq_userspace.142 143	  If in doubt, say Y.144 145config CPU_FREQ_GOV_ONDEMAND146	tristate "'ondemand' cpufreq policy governor"147	select CPU_FREQ_GOV_COMMON148	help149	  'ondemand' - This driver adds a dynamic cpufreq policy governor.150	  The governor does a periodic polling and 151	  changes frequency based on the CPU utilization.152	  The support for this governor depends on CPU capability to153	  do fast frequency switching (i.e, very low latency frequency154	  transitions). 155 156	  To compile this driver as a module, choose M here: the157	  module will be called cpufreq_ondemand.158 159	  For details, take a look at160	  <file:Documentation/admin-guide/pm/cpufreq.rst>.161 162	  If in doubt, say N.163 164config CPU_FREQ_GOV_CONSERVATIVE165	tristate "'conservative' cpufreq governor"166	depends on CPU_FREQ167	select CPU_FREQ_GOV_COMMON168	help169	  'conservative' - this driver is rather similar to the 'ondemand'170	  governor both in its source code and its purpose, the difference is171	  its optimisation for better suitability in a battery powered172	  environment.  The frequency is gracefully increased and decreased173	  rather than jumping to 100% when speed is required.174 175	  If you have a desktop machine then you should really be considering176	  the 'ondemand' governor instead, however if you are using a laptop,177	  PDA or even an AMD64 based computer (due to the unacceptable178	  step-by-step latency issues between the minimum and maximum frequency179	  transitions in the CPU) you will probably want to use this governor.180 181	  To compile this driver as a module, choose M here: the182	  module will be called cpufreq_conservative.183 184	  For details, take a look at185	  <file:Documentation/admin-guide/pm/cpufreq.rst>.186 187	  If in doubt, say N.188 189config CPU_FREQ_GOV_SCHEDUTIL190	bool "'schedutil' cpufreq policy governor"191	depends on CPU_FREQ && SMP192	select CPU_FREQ_GOV_ATTR_SET193	select IRQ_WORK194	help195	  This governor makes decisions based on the utilization data provided196	  by the scheduler.  It sets the CPU frequency to be proportional to197	  the utilization/capacity ratio coming from the scheduler.  If the198	  utilization is frequency-invariant, the new frequency is also199	  proportional to the maximum available frequency.  If that is not the200	  case, it is proportional to the current frequency of the CPU.  The201	  frequency tipping point is at utilization/capacity equal to 80% in202	  both cases.203 204	  If in doubt, say N.205 206comment "CPU frequency scaling drivers"207 208config CPUFREQ_DT209	tristate "Generic DT based cpufreq driver"210	depends on HAVE_CLK && OF211	select CPUFREQ_DT_PLATDEV212	select PM_OPP213	help214	  This adds a generic DT based cpufreq driver for frequency management.215	  It supports both uniprocessor (UP) and symmetric multiprocessor (SMP)216	  systems.217 218	  If in doubt, say N.219 220config CPUFREQ_DT_PLATDEV221	tristate "Generic DT based cpufreq platdev driver"222	depends on OF223	help224	  This adds a generic DT based cpufreq platdev driver for frequency225	  management.  This creates a 'cpufreq-dt' platform device, on the226	  supported platforms.227 228	  If in doubt, say N.229 230if X86231source "drivers/cpufreq/Kconfig.x86"232endif233 234source "drivers/cpufreq/Kconfig.arm"235 236if PPC32 || PPC64237source "drivers/cpufreq/Kconfig.powerpc"238endif239 240if MIPS241config BMIPS_CPUFREQ242	tristate "BMIPS CPUfreq Driver"243	help244	  This option adds a CPUfreq driver for BMIPS processors with245	  support for configurable CPU frequency.246 247	  For now, BMIPS5 chips are supported (such as the Broadcom 7425).248 249	  If in doubt, say N.250 251config LOONGSON2_CPUFREQ252	tristate "Loongson2 CPUFreq Driver"253	depends on LEMOTE_MACH2F254	help255	  This option adds a CPUFreq driver for loongson processors which256	  support software configurable cpu frequency.257 258	  Loongson2F and its successors support this feature.259 260	  If in doubt, say N.261endif262 263if LOONGARCH264config LOONGSON3_CPUFREQ265	tristate "Loongson3 CPUFreq Driver"266	help267	  This option adds a CPUFreq driver for Loongson processors which268	  support software configurable cpu frequency.269 270	  Loongson-3 family processors support this feature.271 272	  If in doubt, say N.273endif274 275if SPARC64276config SPARC_US3_CPUFREQ277	tristate "UltraSPARC-III CPU Frequency driver"278	help279	  This adds the CPUFreq driver for UltraSPARC-III processors.280 281	  If in doubt, say N.282 283config SPARC_US2E_CPUFREQ284	tristate "UltraSPARC-IIe CPU Frequency driver"285	help286	  This adds the CPUFreq driver for UltraSPARC-IIe processors.287 288	  If in doubt, say N.289endif290 291if SUPERH292config SH_CPU_FREQ293	tristate "SuperH CPU Frequency driver"294	help295	  This adds the cpufreq driver for SuperH. Any CPU that supports296	  clock rate rounding through the clock framework can use this297	  driver. While it will make the kernel slightly larger, this is298	  harmless for CPUs that don't support rate rounding. The driver299	  will also generate a notice in the boot log before disabling300	  itself if the CPU in question is not capable of rate rounding.301 302	  If unsure, say N.303endif304 305config QORIQ_CPUFREQ306	tristate "CPU frequency scaling driver for Freescale QorIQ SoCs"307	depends on OF && COMMON_CLK308	depends on PPC_E500MC || SOC_LS1021A || ARCH_LAYERSCAPE || COMPILE_TEST309	select CLK_QORIQ310	help311	  This adds the CPUFreq driver support for Freescale QorIQ SoCs312	  which are capable of changing the CPU's frequency dynamically.313 314endif315 316config ACPI_CPPC_CPUFREQ317	tristate "CPUFreq driver based on the ACPI CPPC spec"318	depends on ACPI_PROCESSOR319	depends on ARM || ARM64 || RISCV320	select ACPI_CPPC_LIB321	help322	  This adds a CPUFreq driver which uses CPPC methods323	  as described in the ACPIv5.1 spec. CPPC stands for324	  Collaborative Processor Performance Controls. It325	  is based on an abstract continuous scale of CPU326	  performance values which allows the remote power327	  processor to flexibly optimize for power and328	  performance. CPPC relies on power management firmware329	  support for its operation.330 331	  If in doubt, say N.332 333config ACPI_CPPC_CPUFREQ_FIE334	bool "Frequency Invariance support for CPPC cpufreq driver"335	depends on ACPI_CPPC_CPUFREQ && GENERIC_ARCH_TOPOLOGY336	depends on ARM || ARM64 || RISCV337	default y338	help339	  This extends frequency invariance support in the CPPC cpufreq driver,340	  by using CPPC delivered and reference performance counters.341 342	  If in doubt, say N.343 344endmenu345