xref: /linux/drivers/cpufreq/Kconfig.x86 (revision aec2f682d47c54ef434b2d440992626d80b1ebdc)
1# SPDX-License-Identifier: GPL-2.0-only
2#
3# x86 CPU Frequency scaling drivers
4#
5
6config X86_INTEL_PSTATE
7	bool "Intel P state control"
8	depends on X86
9	select ACPI_PROCESSOR if ACPI
10	select ACPI_CPPC_LIB if X86_64 && ACPI && SCHED_MC_PRIO
11	select CPU_FREQ_GOV_PERFORMANCE
12	select CPU_FREQ_GOV_SCHEDUTIL if SMP
13	help
14	  This driver provides a P state for Intel core processors.
15	  The driver implements an internal governor and will become
16	  the scaling driver and governor for Sandy bridge processors.
17
18	  When this driver is enabled it will become the preferred
19	  scaling driver for Sandy bridge processors.
20
21	  If in doubt, say N.
22
23config X86_PCC_CPUFREQ
24	tristate "Processor Clocking Control interface driver"
25	depends on ACPI && ACPI_PROCESSOR
26	help
27	  This driver adds support for the PCC interface.
28
29	  For details, take a look at:
30	  <file:Documentation/admin-guide/pm/cpufreq_drivers.rst>.
31
32	  To compile this driver as a module, choose M here: the
33	  module will be called pcc-cpufreq.
34
35	  If in doubt, say N.
36
37config X86_AMD_PSTATE
38	bool "AMD Processor P-State driver"
39	depends on X86 && ACPI
40	select ACPI_PROCESSOR
41	select ACPI_CPPC_LIB if X86_64
42	select CPU_FREQ_GOV_SCHEDUTIL if SMP
43	select ACPI_PLATFORM_PROFILE
44	select POWER_SUPPLY
45	help
46	  This driver adds a CPUFreq driver which utilizes a fine grain
47	  processor performance frequency control range instead of legacy
48	  performance levels. _CPC needs to be present in the ACPI tables
49	  of the system.
50
51	  For details, take a look at:
52	  <file:Documentation/admin-guide/pm/amd-pstate.rst>.
53
54	  If in doubt, say N.
55
56config X86_AMD_PSTATE_DEFAULT_MODE
57	int "AMD Processor P-State default mode"
58	depends on X86_AMD_PSTATE
59	default 3 if X86_AMD_PSTATE
60	range 1 4
61	help
62	  Select the default mode the amd-pstate driver will use on
63	  supported hardware.
64	  The value set has the following meanings:
65		1 -> Disabled
66		2 -> Passive
67		3 -> Active (EPP)
68		4 -> Guided
69
70	  For details, take a look at:
71	  <file:Documentation/admin-guide/pm/amd-pstate.rst>.
72
73config X86_AMD_PSTATE_DYNAMIC_EPP
74	bool "AMD Processor P-State dynamic EPP support"
75	depends on X86_AMD_PSTATE
76	default n
77	help
78	  Allow the kernel to dynamically change the energy performance
79	  value from events like ACPI platform profile and AC adapter plug
80	  events.
81
82	  This feature can also be changed at runtime, this configuration
83	  option only sets the kernel default value behavior.
84
85config X86_AMD_PSTATE_UT
86	tristate "selftest for AMD Processor P-State driver"
87	depends on X86 && ACPI_PROCESSOR
88	depends on X86_AMD_PSTATE
89	default n
90	help
91	  This kernel module is used for testing. It's safe to say M here.
92
93	  It can also be built-in without X86_AMD_PSTATE enabled.
94	  Currently, only tests for amd-pstate are supported. If X86_AMD_PSTATE
95	  is set disabled, it can tell the users test can only run on amd-pstate
96	  driver, please set X86_AMD_PSTATE enabled.
97	  In the future, comparison tests will be added. It can set amd-pstate
98	  disabled and set acpi-cpufreq enabled to run test cases, then compare
99	  the test results.
100
101config X86_ACPI_CPUFREQ
102	tristate "ACPI Processor P-States driver"
103	depends on ACPI_PROCESSOR
104	help
105	  This driver adds a CPUFreq driver which utilizes the ACPI
106	  Processor Performance States.
107	  This driver also supports Intel Enhanced Speedstep and newer
108	  AMD CPUs.
109
110	  To compile this driver as a module, choose M here: the
111	  module will be called acpi-cpufreq.
112
113	  For details, take a look at <file:Documentation/cpu-freq/>.
114
115	  If in doubt, say N.
116
117config X86_ACPI_CPUFREQ_CPB
118	default y
119	bool "Legacy cpb sysfs knob support for AMD CPUs"
120	depends on X86_ACPI_CPUFREQ && CPU_SUP_AMD
121	help
122	  The powernow-k8 driver used to provide a sysfs knob called "cpb"
123	  to disable the Core Performance Boosting feature of AMD CPUs. This
124	  file has now been superseded by the more generic "boost" entry.
125
126	  By enabling this option the acpi_cpufreq driver provides the old
127	  entry in addition to the new boost ones, for compatibility reasons.
128
129config ELAN_CPUFREQ
130	tristate "AMD Elan SC400 and SC410"
131	depends on MELAN
132	help
133	  This adds the CPUFreq driver for AMD Elan SC400 and SC410
134	  processors.
135
136	  You need to specify the processor maximum speed as boot
137	  parameter: elanfreq=maxspeed (in kHz) or as module
138	  parameter "max_freq".
139
140	  For details, take a look at <file:Documentation/cpu-freq/>.
141
142	  If in doubt, say N.
143
144config SC520_CPUFREQ
145	tristate "AMD Elan SC520"
146	depends on MELAN
147	help
148	  This adds the CPUFreq driver for AMD Elan SC520 processor.
149
150	  For details, take a look at <file:Documentation/cpu-freq/>.
151
152	  If in doubt, say N.
153
154
155config X86_POWERNOW_K6
156	tristate "AMD Mobile K6-2/K6-3 PowerNow!"
157	depends on X86_32
158	help
159	  This adds the CPUFreq driver for mobile AMD K6-2+ and mobile
160	  AMD K6-3+ processors.
161
162	  For details, take a look at <file:Documentation/cpu-freq/>.
163
164	  If in doubt, say N.
165
166config X86_POWERNOW_K7
167	tristate "AMD Mobile Athlon/Duron PowerNow!"
168	depends on X86_32
169	help
170	  This adds the CPUFreq driver for mobile AMD K7 mobile processors.
171
172	  For details, take a look at <file:Documentation/cpu-freq/>.
173
174	  If in doubt, say N.
175
176config X86_POWERNOW_K7_ACPI
177	bool
178	depends on X86_POWERNOW_K7 && ACPI_PROCESSOR
179	depends on !(X86_POWERNOW_K7 = y && ACPI_PROCESSOR = m)
180	depends on X86_32
181	default y
182
183config X86_POWERNOW_K8
184	tristate "AMD Opteron/Athlon64 PowerNow!"
185	depends on ACPI && ACPI_PROCESSOR && X86_ACPI_CPUFREQ
186	help
187	  This adds the CPUFreq driver for K8/early Opteron/Athlon64 processors.
188	  Support for K10 and newer processors is now in acpi-cpufreq.
189
190	  To compile this driver as a module, choose M here: the
191	  module will be called powernow-k8.
192
193	  For details, take a look at <file:Documentation/cpu-freq/>.
194
195config X86_AMD_FREQ_SENSITIVITY
196	tristate "AMD frequency sensitivity feedback powersave bias"
197	depends on CPU_FREQ_GOV_ONDEMAND && X86_ACPI_CPUFREQ && CPU_SUP_AMD
198	help
199	  This adds AMD-specific powersave bias function to the ondemand
200	  governor, which allows it to make more power-conscious frequency
201	  change decisions based on feedback from hardware (available on AMD
202	  Family 16h and above).
203
204	  Hardware feedback tells software how "sensitive" to frequency changes
205	  the CPUs' workloads are. CPU-bound workloads will be more sensitive
206	  -- they will perform better as frequency increases. Memory/IO-bound
207	  workloads will be less sensitive -- they will not necessarily perform
208	  better as frequency increases.
209
210	  If in doubt, say N.
211
212config X86_GX_SUSPMOD
213	tristate "Cyrix MediaGX/NatSemi Geode Suspend Modulation"
214	depends on X86_32 && PCI
215	help
216	 This add the CPUFreq driver for NatSemi Geode processors which
217	 support suspend modulation.
218
219	 For details, take a look at <file:Documentation/cpu-freq/>.
220
221	 If in doubt, say N.
222
223config X86_SPEEDSTEP_CENTRINO
224	tristate "Intel Enhanced SpeedStep (deprecated)"
225	select X86_SPEEDSTEP_CENTRINO_TABLE if X86_32
226	depends on X86_32 || (X86_64 && ACPI_PROCESSOR)
227	help
228	  This is deprecated and this functionality is now merged into
229	  acpi_cpufreq (X86_ACPI_CPUFREQ). Use that driver instead of
230	  speedstep_centrino.
231	  This adds the CPUFreq driver for Enhanced SpeedStep enabled
232	  mobile CPUs.  This means Intel Pentium M (Centrino) CPUs
233	  or 64bit enabled Intel Xeons.
234
235	  To compile this driver as a module, choose M here: the
236	  module will be called speedstep-centrino.
237
238	  For details, take a look at <file:Documentation/cpu-freq/>.
239
240	  If in doubt, say N.
241
242config X86_SPEEDSTEP_CENTRINO_TABLE
243	bool "Built-in tables for Banias CPUs"
244	depends on X86_32 && X86_SPEEDSTEP_CENTRINO
245	default y
246	help
247	  Use built-in tables for Banias CPUs if ACPI encoding
248	  is not available.
249
250	  If in doubt, say N.
251
252config X86_SPEEDSTEP_ICH
253	tristate "Intel Speedstep on ICH-M chipsets (ioport interface)"
254	depends on X86_32
255	help
256	  This adds the CPUFreq driver for certain mobile Intel Pentium III
257	  (Coppermine), all mobile Intel Pentium III-M (Tualatin) and all
258	  mobile Intel Pentium 4 P4-M on systems which have an Intel ICH2,
259	  ICH3 or ICH4 southbridge.
260
261	  For details, take a look at <file:Documentation/cpu-freq/>.
262
263	  If in doubt, say N.
264
265config X86_SPEEDSTEP_SMI
266	tristate "Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface)"
267	depends on X86_32
268	help
269	  This adds the CPUFreq driver for certain mobile Intel Pentium III
270	  (Coppermine), all mobile Intel Pentium III-M (Tualatin)
271	  on systems which have an Intel 440BX/ZX/MX southbridge.
272
273	  For details, take a look at <file:Documentation/cpu-freq/>.
274
275	  If in doubt, say N.
276
277config X86_P4_CLOCKMOD
278	tristate "Intel Pentium 4 clock modulation"
279	help
280	  This adds the CPUFreq driver for Intel Pentium 4 / XEON
281	  processors.  When enabled it will lower CPU temperature by skipping
282	  clocks.
283
284	  This driver should be only used in exceptional
285	  circumstances when very low power is needed because it causes severe
286	  slowdowns and noticeable latencies.  Normally Speedstep should be used
287	  instead.
288
289	  To compile this driver as a module, choose M here: the
290	  module will be called p4-clockmod.
291
292	  For details, take a look at <file:Documentation/cpu-freq/>.
293
294	  Unless you are absolutely sure say N.
295
296config X86_CPUFREQ_NFORCE2
297	tristate "nVidia nForce2 FSB changing"
298	depends on X86_32
299	help
300	  This adds the CPUFreq driver for FSB changing on nVidia nForce2
301	  platforms.
302
303	  For details, take a look at <file:Documentation/cpu-freq/>.
304
305	  If in doubt, say N.
306
307config X86_LONGRUN
308	tristate "Transmeta LongRun"
309	depends on X86_32
310	help
311	  This adds the CPUFreq driver for Transmeta Crusoe and Efficeon processors
312	  which support LongRun.
313
314	  For details, take a look at <file:Documentation/cpu-freq/>.
315
316	  If in doubt, say N.
317
318config X86_LONGHAUL
319	tristate "VIA Cyrix III Longhaul"
320	depends on X86_32 && ACPI_PROCESSOR
321	help
322	  This adds the CPUFreq driver for VIA Samuel/CyrixIII,
323	  VIA Cyrix Samuel/C3, VIA Cyrix Ezra and VIA Cyrix Ezra-T
324	  processors.
325
326	  For details, take a look at <file:Documentation/cpu-freq/>.
327
328	  If in doubt, say N.
329
330config X86_E_POWERSAVER
331	tristate "VIA C7 Enhanced PowerSaver (DANGEROUS)"
332	depends on X86_32 && ACPI_PROCESSOR
333	help
334	  This adds the CPUFreq driver for VIA C7 processors.  However, this driver
335	  does not have any safeguards to prevent operating the CPU out of spec
336	  and is thus considered dangerous.  Please use the regular ACPI cpufreq
337	  driver, enabled by CONFIG_X86_ACPI_CPUFREQ.
338
339	  If in doubt, say N.
340
341comment "shared options"
342
343config X86_SPEEDSTEP_LIB
344	tristate
345	default (X86_SPEEDSTEP_ICH || X86_SPEEDSTEP_SMI || X86_P4_CLOCKMOD)
346
347config X86_SPEEDSTEP_RELAXED_CAP_CHECK
348	bool "Relaxed speedstep capability checks"
349	depends on X86_32 && (X86_SPEEDSTEP_SMI || X86_SPEEDSTEP_ICH)
350	help
351	  Don't perform all checks for a speedstep capable system which would
352	  normally be done. Some ancient or strange systems, though speedstep
353	  capable, don't always indicate that they are speedstep capable. This
354	  option lets the probing code bypass some of those checks if the
355	  parameter "relaxed_check=1" is passed to the module.
356
357config CPUFREQ_ARCH_CUR_FREQ
358	default y
359	bool "Current frequency derived from HW provided feedback"
360	help
361	  This determines whether the scaling_cur_freq sysfs attribute returns
362	  the last requested frequency or a more precise value based on hardware
363	  provided feedback (as architected counters).
364	  Given that a more precise frequency can now be provided via the
365	  cpuinfo_avg_freq attribute, by enabling this option,
366	  scaling_cur_freq maintains the provision of a counter based frequency,
367	  for compatibility reasons.
368
369