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