Linux Audio

Check our new training course

Loading...
v6.13.7
  1# SPDX-License-Identifier: GPL-2.0-only
  2menu "CPU Frequency scaling"
  3
  4config CPU_FREQ
  5	bool "CPU Frequency scaling"
  6	help
  7	  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 CPU
 12	  clock speed, you need to either enable a dynamic cpufreq governor
 13	  (see below) after boot, or use a userspace tool.
 14
 15	  For details, take a look at
 16	  <file:Documentation/admin-guide/pm/cpufreq.rst>.
 17
 18	  If in doubt, say N.
 19
 20if CPU_FREQ
 21
 22config CPU_FREQ_GOV_ATTR_SET
 23	bool
 24
 25config CPU_FREQ_GOV_COMMON
 26	select CPU_FREQ_GOV_ATTR_SET
 27	select IRQ_WORK
 28	bool
 29
 30config CPU_FREQ_STAT
 31	bool "CPU frequency transition statistics"
 
 
 32	help
 33	  Export CPU frequency statistics information through sysfs.
 
 
 
 
 
 
 
 
 
 
 
 
 
 34
 35	  If in doubt, say N.
 36
 37choice
 38	prompt "Default CPUFreq governor"
 39	default CPU_FREQ_DEFAULT_GOV_USERSPACE if ARM_SA1110_CPUFREQ
 40	default CPU_FREQ_DEFAULT_GOV_SCHEDUTIL if ARM64 || ARM
 41	default CPU_FREQ_DEFAULT_GOV_SCHEDUTIL if (X86_INTEL_PSTATE || X86_AMD_PSTATE) && SMP
 42	default CPU_FREQ_DEFAULT_GOV_PERFORMANCE
 43	help
 44	  This option sets which CPUFreq governor shall be loaded at
 45	  startup. If in doubt, use the default setting.
 46
 47config CPU_FREQ_DEFAULT_GOV_PERFORMANCE
 48	bool "performance"
 49	select CPU_FREQ_GOV_PERFORMANCE
 50	help
 51	  Use the CPUFreq governor 'performance' as default. This sets
 52	  the frequency statically to the highest frequency supported by
 53	  the CPU.
 54
 55config CPU_FREQ_DEFAULT_GOV_POWERSAVE
 56	bool "powersave"
 
 57	select CPU_FREQ_GOV_POWERSAVE
 58	help
 59	  Use the CPUFreq governor 'powersave' as default. This sets
 60	  the frequency statically to the lowest frequency supported by
 61	  the CPU.
 62
 63config CPU_FREQ_DEFAULT_GOV_USERSPACE
 64	bool "userspace"
 65	select CPU_FREQ_GOV_USERSPACE
 66	help
 67	  Use the CPUFreq governor 'userspace' as default. This allows
 68	  you to set the CPU frequency manually or when a userspace 
 69	  program shall be able to set the CPU dynamically without having
 70	  to enable the userspace governor manually.
 71
 72config CPU_FREQ_DEFAULT_GOV_ONDEMAND
 73	bool "ondemand"
 74	depends on !(X86_INTEL_PSTATE && SMP)
 75	select CPU_FREQ_GOV_ONDEMAND
 76	select CPU_FREQ_GOV_PERFORMANCE
 77	help
 78	  Use the CPUFreq governor 'ondemand' as default. This allows
 79	  you to get a full dynamic frequency capable system by simply
 80	  loading your cpufreq low-level hardware driver.
 81	  Be aware that not all cpufreq drivers support the ondemand
 82	  governor. If unsure have a look at the help section of the
 83	  driver. Fallback governor will be the performance governor.
 84
 85config CPU_FREQ_DEFAULT_GOV_CONSERVATIVE
 86	bool "conservative"
 87	depends on !(X86_INTEL_PSTATE && SMP)
 88	select CPU_FREQ_GOV_CONSERVATIVE
 89	select CPU_FREQ_GOV_PERFORMANCE
 90	help
 91	  Use the CPUFreq governor 'conservative' as default. This allows
 92	  you to get a full dynamic frequency capable system by simply
 93	  loading your cpufreq low-level hardware driver.
 94	  Be aware that not all cpufreq drivers support the conservative
 95	  governor. If unsure have a look at the help section of the
 96	  driver. Fallback governor will be the performance governor.
 97
 98config CPU_FREQ_DEFAULT_GOV_SCHEDUTIL
 99	bool "schedutil"
100	depends on SMP
101	select CPU_FREQ_GOV_SCHEDUTIL
102	select CPU_FREQ_GOV_PERFORMANCE
103	help
104	  Use the 'schedutil' CPUFreq governor by default. If unsure,
105	  have a look at the help section of that governor. The fallback
106	  governor will be 'performance'.
107
108endchoice
109
110config CPU_FREQ_GOV_PERFORMANCE
111	tristate "'performance' governor"
112	help
113	  This cpufreq governor sets the frequency statically to the
114	  highest available CPU frequency.
115
116	  To compile this driver as a module, choose M here: the
117	  module will be called cpufreq_performance.
118
119	  If in doubt, say Y.
120
121config CPU_FREQ_GOV_POWERSAVE
122	tristate "'powersave' governor"
123	help
124	  This cpufreq governor sets the frequency statically to the
125	  lowest available CPU frequency.
126
127	  To compile this driver as a module, choose M here: the
128	  module will be called cpufreq_powersave.
129
130	  If in doubt, say Y.
131
132config CPU_FREQ_GOV_USERSPACE
133	tristate "'userspace' governor for userspace frequency scaling"
134	help
135	  Enable this cpufreq governor when you either want to set the
136	  CPU frequency manually or when a userspace program shall
137	  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: the
141	  module will be called cpufreq_userspace.
142
 
 
143	  If in doubt, say Y.
144
145config CPU_FREQ_GOV_ONDEMAND
146	tristate "'ondemand' cpufreq policy governor"
147	select CPU_FREQ_GOV_COMMON
148	help
149	  '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 to
153	  do fast frequency switching (i.e, very low latency frequency
154	  transitions). 
155
156	  To compile this driver as a module, choose M here: the
157	  module will be called cpufreq_ondemand.
158
159	  For details, take a look at
160	  <file:Documentation/admin-guide/pm/cpufreq.rst>.
161
162	  If in doubt, say N.
163
164config CPU_FREQ_GOV_CONSERVATIVE
165	tristate "'conservative' cpufreq governor"
166	depends on CPU_FREQ
167	select CPU_FREQ_GOV_COMMON
168	help
169	  'conservative' - this driver is rather similar to the 'ondemand'
170	  governor both in its source code and its purpose, the difference is
171	  its optimisation for better suitability in a battery powered
172	  environment.  The frequency is gracefully increased and decreased
173	  rather than jumping to 100% when speed is required.
174
175	  If you have a desktop machine then you should really be considering
176	  the 'ondemand' governor instead, however if you are using a laptop,
177	  PDA or even an AMD64 based computer (due to the unacceptable
178	  step-by-step latency issues between the minimum and maximum frequency
179	  transitions in the CPU) you will probably want to use this governor.
180
181	  To compile this driver as a module, choose M here: the
182	  module will be called cpufreq_conservative.
183
184	  For details, take a look at
185	  <file:Documentation/admin-guide/pm/cpufreq.rst>.
186
187	  If in doubt, say N.
188
189config CPU_FREQ_GOV_SCHEDUTIL
190	bool "'schedutil' cpufreq policy governor"
191	depends on CPU_FREQ && SMP
192	select CPU_FREQ_GOV_ATTR_SET
193	select IRQ_WORK
194	help
195	  This governor makes decisions based on the utilization data provided
196	  by the scheduler.  It sets the CPU frequency to be proportional to
197	  the utilization/capacity ratio coming from the scheduler.  If the
198	  utilization is frequency-invariant, the new frequency is also
199	  proportional to the maximum available frequency.  If that is not the
200	  case, it is proportional to the current frequency of the CPU.  The
201	  frequency tipping point is at utilization/capacity equal to 80% in
202	  both cases.
203
204	  If in doubt, say N.
205
206comment "CPU frequency scaling drivers"
207
208config CPUFREQ_DT
209	tristate "Generic DT based cpufreq driver"
210	depends on HAVE_CLK && OF
211	select CPUFREQ_DT_PLATDEV
212	select PM_OPP
213	help
214	  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_VIRT
221	tristate "Virtual cpufreq driver"
222	depends on GENERIC_ARCH_TOPOLOGY
223	help
224	  This adds a virtualized cpufreq driver for guest kernels that
225	  read/writes to a MMIO region for a virtualized cpufreq device to
226	  communicate with the host. It sends performance requests to the host
227	  which gets used as a hint to schedule vCPU threads and select CPU
228	  frequency. If a VM does not support a virtualized FIE such as AMUs,
229	  it updates the frequency scaling factor by polling host CPU frequency
230	  to enable accurate Per-Entity Load Tracking for tasks running in the guest.
231
232	  If in doubt, say N.
233
234config CPUFREQ_DT_PLATDEV
235	bool "Generic DT based cpufreq platdev driver"
236	depends on OF
237	help
238	  This adds a generic DT based cpufreq platdev driver for frequency
239	  management.  This creates a 'cpufreq-dt' platform device, on the
240	  supported platforms.
241
242	  If in doubt, say N.
243
244if X86
245source "drivers/cpufreq/Kconfig.x86"
246endif
247
 
 
248source "drivers/cpufreq/Kconfig.arm"
 
249
250if PPC32 || PPC64
 
251source "drivers/cpufreq/Kconfig.powerpc"
252endif
253
254if MIPS
255config BMIPS_CPUFREQ
256	tristate "BMIPS CPUfreq Driver"
257	help
258	  This option adds a CPUfreq driver for BMIPS processors with
259	  support for configurable CPU frequency.
260
261	  For now, BMIPS5 chips are supported (such as the Broadcom 7425).
262
263	  If in doubt, say N.
264
265config LOONGSON2_CPUFREQ
266	tristate "Loongson2 CPUFreq Driver"
267	depends on LEMOTE_MACH2F
268	help
269	  This option adds a CPUFreq driver for loongson processors which
270	  support software configurable cpu frequency.
271
272	  Loongson2F and its successors support this feature.
273
274	  If in doubt, say N.
275endif
276
277if LOONGARCH
278config LOONGSON3_CPUFREQ
279	tristate "Loongson3 CPUFreq Driver"
280	help
281	  This option adds a CPUFreq driver for Loongson processors which
282	  support software configurable cpu frequency.
283
284	  Loongson-3 family processors support this feature.
285
286	  If in doubt, say N.
287endif
288
289if SPARC64
290config SPARC_US3_CPUFREQ
291	tristate "UltraSPARC-III CPU Frequency driver"
292	help
293	  This adds the CPUFreq driver for UltraSPARC-III processors.
294
295	  If in doubt, say N.
296
297config SPARC_US2E_CPUFREQ
298	tristate "UltraSPARC-IIe CPU Frequency driver"
299	help
300	  This adds the CPUFreq driver for UltraSPARC-IIe processors.
301
302	  If in doubt, say N.
303endif
304
305if SUPERH
306config SH_CPU_FREQ
307	tristate "SuperH CPU Frequency driver"
308	help
309	  This adds the cpufreq driver for SuperH. Any CPU that supports
310	  clock rate rounding through the clock framework can use this
311	  driver. While it will make the kernel slightly larger, this is
312	  harmless for CPUs that don't support rate rounding. The driver
313	  will also generate a notice in the boot log before disabling
314	  itself if the CPU in question is not capable of rate rounding.
315
316	  If unsure, say N.
317endif
318
319config QORIQ_CPUFREQ
320	tristate "CPU frequency scaling driver for Freescale QorIQ SoCs"
321	depends on OF && COMMON_CLK
322	depends on PPC_E500MC || SOC_LS1021A || ARCH_LAYERSCAPE || COMPILE_TEST
323	select CLK_QORIQ
324	help
325	  This adds the CPUFreq driver support for Freescale QorIQ SoCs
326	  which are capable of changing the CPU's frequency dynamically.
327
328config ACPI_CPPC_CPUFREQ
329	tristate "CPUFreq driver based on the ACPI CPPC spec"
330	depends on ACPI_PROCESSOR
331	depends on ARM || ARM64 || RISCV
332	select ACPI_CPPC_LIB
333	help
334	  This adds a CPUFreq driver which uses CPPC methods
335	  as described in the ACPIv5.1 spec. CPPC stands for
336	  Collaborative Processor Performance Controls. It
337	  is based on an abstract continuous scale of CPU
338	  performance values which allows the remote power
339	  processor to flexibly optimize for power and
340	  performance. CPPC relies on power management firmware
341	  support for its operation.
342
343	  If in doubt, say N.
344
345config ACPI_CPPC_CPUFREQ_FIE
346	bool "Frequency Invariance support for CPPC cpufreq driver"
347	depends on ACPI_CPPC_CPUFREQ && GENERIC_ARCH_TOPOLOGY
348	depends on ARM || ARM64 || RISCV
349	default y
350	help
351	  This extends frequency invariance support in the CPPC cpufreq driver,
352	  by using CPPC delivered and reference performance counters.
353
354	  If in doubt, say N.
355
356endif
357
358endmenu
v3.1
 
  1menu "CPU Frequency scaling"
  2
  3config CPU_FREQ
  4	bool "CPU Frequency scaling"
  5	help
  6	  CPU Frequency scaling allows you to change the clock speed of 
  7	  CPUs on the fly. This is a nice method to save power, because 
  8	  the lower the CPU clock speed, the less power the CPU consumes.
  9
 10	  Note that this driver doesn't automatically change the CPU
 11	  clock speed, you need to either enable a dynamic cpufreq governor
 12	  (see below) after boot, or use a userspace tool.
 13
 14	  For details, take a look at <file:Documentation/cpu-freq>.
 
 15
 16	  If in doubt, say N.
 17
 18if CPU_FREQ
 19
 20config CPU_FREQ_TABLE
 21	tristate
 
 
 
 
 
 22
 23config CPU_FREQ_STAT
 24	tristate "CPU frequency translation statistics"
 25	select CPU_FREQ_TABLE
 26	default y
 27	help
 28	  This driver exports CPU frequency statistics information through sysfs
 29	  file system.
 30
 31	  To compile this driver as a module, choose M here: the
 32	  module will be called cpufreq_stats.
 33
 34	  If in doubt, say N.
 35
 36config CPU_FREQ_STAT_DETAILS
 37	bool "CPU frequency translation statistics details"
 38	depends on CPU_FREQ_STAT
 39	help
 40	  This will show detail CPU frequency translation table in sysfs file
 41	  system.
 42
 43	  If in doubt, say N.
 44
 45choice
 46	prompt "Default CPUFreq governor"
 47	default CPU_FREQ_DEFAULT_GOV_USERSPACE if CPU_FREQ_SA1100 || CPU_FREQ_SA1110
 
 
 48	default CPU_FREQ_DEFAULT_GOV_PERFORMANCE
 49	help
 50	  This option sets which CPUFreq governor shall be loaded at
 51	  startup. If in doubt, select 'performance'.
 52
 53config CPU_FREQ_DEFAULT_GOV_PERFORMANCE
 54	bool "performance"
 55	select CPU_FREQ_GOV_PERFORMANCE
 56	help
 57	  Use the CPUFreq governor 'performance' as default. This sets
 58	  the frequency statically to the highest frequency supported by
 59	  the CPU.
 60
 61config CPU_FREQ_DEFAULT_GOV_POWERSAVE
 62	bool "powersave"
 63	depends on EXPERT
 64	select CPU_FREQ_GOV_POWERSAVE
 65	help
 66	  Use the CPUFreq governor 'powersave' as default. This sets
 67	  the frequency statically to the lowest frequency supported by
 68	  the CPU.
 69
 70config CPU_FREQ_DEFAULT_GOV_USERSPACE
 71	bool "userspace"
 72	select CPU_FREQ_GOV_USERSPACE
 73	help
 74	  Use the CPUFreq governor 'userspace' as default. This allows
 75	  you to set the CPU frequency manually or when a userspace 
 76	  program shall be able to set the CPU dynamically without having
 77	  to enable the userspace governor manually.
 78
 79config CPU_FREQ_DEFAULT_GOV_ONDEMAND
 80	bool "ondemand"
 
 81	select CPU_FREQ_GOV_ONDEMAND
 82	select CPU_FREQ_GOV_PERFORMANCE
 83	help
 84	  Use the CPUFreq governor 'ondemand' as default. This allows
 85	  you to get a full dynamic frequency capable system by simply
 86	  loading your cpufreq low-level hardware driver.
 87	  Be aware that not all cpufreq drivers support the ondemand
 88	  governor. If unsure have a look at the help section of the
 89	  driver. Fallback governor will be the performance governor.
 90
 91config CPU_FREQ_DEFAULT_GOV_CONSERVATIVE
 92	bool "conservative"
 
 93	select CPU_FREQ_GOV_CONSERVATIVE
 94	select CPU_FREQ_GOV_PERFORMANCE
 95	help
 96	  Use the CPUFreq governor 'conservative' as default. This allows
 97	  you to get a full dynamic frequency capable system by simply
 98	  loading your cpufreq low-level hardware driver.
 99	  Be aware that not all cpufreq drivers support the conservative
100	  governor. If unsure have a look at the help section of the
101	  driver. Fallback governor will be the performance governor.
 
 
 
 
 
 
 
 
 
 
 
102endchoice
103
104config CPU_FREQ_GOV_PERFORMANCE
105	tristate "'performance' governor"
106	help
107	  This cpufreq governor sets the frequency statically to the
108	  highest available CPU frequency.
109
110	  To compile this driver as a module, choose M here: the
111	  module will be called cpufreq_performance.
112
113	  If in doubt, say Y.
114
115config CPU_FREQ_GOV_POWERSAVE
116	tristate "'powersave' governor"
117	help
118	  This cpufreq governor sets the frequency statically to the
119	  lowest available CPU frequency.
120
121	  To compile this driver as a module, choose M here: the
122	  module will be called cpufreq_powersave.
123
124	  If in doubt, say Y.
125
126config CPU_FREQ_GOV_USERSPACE
127	tristate "'userspace' governor for userspace frequency scaling"
128	help
129	  Enable this cpufreq governor when you either want to set the
130	  CPU frequency manually or when a userspace program shall
131	  be able to set the CPU dynamically, like on LART 
132	  <http://www.lartmaker.nl/>.
133
134	  To compile this driver as a module, choose M here: the
135	  module will be called cpufreq_userspace.
136
137	  For details, take a look at <file:Documentation/cpu-freq/>.
138
139	  If in doubt, say Y.
140
141config CPU_FREQ_GOV_ONDEMAND
142	tristate "'ondemand' cpufreq policy governor"
143	select CPU_FREQ_TABLE
144	help
145	  'ondemand' - This driver adds a dynamic cpufreq policy governor.
146	  The governor does a periodic polling and 
147	  changes frequency based on the CPU utilization.
148	  The support for this governor depends on CPU capability to
149	  do fast frequency switching (i.e, very low latency frequency
150	  transitions). 
151
152	  To compile this driver as a module, choose M here: the
153	  module will be called cpufreq_ondemand.
154
155	  For details, take a look at linux/Documentation/cpu-freq.
 
156
157	  If in doubt, say N.
158
159config CPU_FREQ_GOV_CONSERVATIVE
160	tristate "'conservative' cpufreq governor"
161	depends on CPU_FREQ
 
162	help
163	  'conservative' - this driver is rather similar to the 'ondemand'
164	  governor both in its source code and its purpose, the difference is
165	  its optimisation for better suitability in a battery powered
166	  environment.  The frequency is gracefully increased and decreased
167	  rather than jumping to 100% when speed is required.
168
169	  If you have a desktop machine then you should really be considering
170	  the 'ondemand' governor instead, however if you are using a laptop,
171	  PDA or even an AMD64 based computer (due to the unacceptable
172	  step-by-step latency issues between the minimum and maximum frequency
173	  transitions in the CPU) you will probably want to use this governor.
174
175	  To compile this driver as a module, choose M here: the
176	  module will be called cpufreq_conservative.
177
178	  For details, take a look at linux/Documentation/cpu-freq.
 
179
180	  If in doubt, say N.
181
182menu "x86 CPU frequency scaling drivers"
183depends on X86
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
184source "drivers/cpufreq/Kconfig.x86"
185endmenu
186
187menu "ARM CPU frequency scaling drivers"
188depends on ARM
189source "drivers/cpufreq/Kconfig.arm"
190endmenu
191
192menu "PowerPC CPU frequency scaling drivers"
193depends on PPC32 || PPC64
194source "drivers/cpufreq/Kconfig.powerpc"
195endmenu
 
 
 
 
 
 
 
 
 
 
 
196
 
 
 
 
 
 
 
 
 
 
197endif
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
198endmenu