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