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