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