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