1 # SPDX-License-Identifier: GPL-2.0-only
3 # x86 CPU Frequency scaling drivers
6 config X86_INTEL_PSTATE
7 bool "Intel P state control"
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
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.
18 When this driver is enabled it will become the preferred
19 scaling driver for Sandy bridge processors.
23 config X86_PCC_CPUFREQ
24 tristate "Processor Clocking Control interface driver"
25 depends on ACPI && ACPI_PROCESSOR
27 This driver adds support for the PCC interface.
29 For details, take a look at:
30 <file:Documentation/admin-guide/pm/cpufreq_drivers.rst>.
32 To compile this driver as a module, choose M here: the
33 module will be called pcc-cpufreq.
38 bool "AMD Processor P-State driver"
39 depends on X86 && ACPI
41 select ACPI_CPPC_LIB if X86_64
42 select CPU_FREQ_GOV_SCHEDUTIL if SMP
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
49 For details, take a look at:
50 <file:Documentation/admin-guide/pm/amd-pstate.rst>.
54 config X86_AMD_PSTATE_DEFAULT_MODE
55 int "AMD Processor P-State default mode"
56 depends on X86_AMD_PSTATE
57 default 3 if X86_AMD_PSTATE
60 Select the default mode the amd-pstate driver will use on
62 The value set has the following meanings:
68 For details, take a look at:
69 <file:Documentation/admin-guide/pm/amd-pstate.rst>.
71 config X86_AMD_PSTATE_UT
72 tristate "selftest for AMD Processor P-State driver"
73 depends on X86 && ACPI_PROCESSOR
76 This kernel module is used for testing. It's safe to say M here.
78 It can also be built-in without X86_AMD_PSTATE enabled.
79 Currently, only tests for amd-pstate are supported. If X86_AMD_PSTATE
80 is set disabled, it can tell the users test can only run on amd-pstate
81 driver, please set X86_AMD_PSTATE enabled.
82 In the future, comparison tests will be added. It can set amd-pstate
83 disabled and set acpi-cpufreq enabled to run test cases, then compare
86 config X86_ACPI_CPUFREQ
87 tristate "ACPI Processor P-States driver"
88 depends on ACPI_PROCESSOR
90 This driver adds a CPUFreq driver which utilizes the ACPI
91 Processor Performance States.
92 This driver also supports Intel Enhanced Speedstep and newer
95 To compile this driver as a module, choose M here: the
96 module will be called acpi-cpufreq.
98 For details, take a look at <file:Documentation/cpu-freq/>.
102 config X86_ACPI_CPUFREQ_CPB
104 bool "Legacy cpb sysfs knob support for AMD CPUs"
105 depends on X86_ACPI_CPUFREQ && CPU_SUP_AMD
107 The powernow-k8 driver used to provide a sysfs knob called "cpb"
108 to disable the Core Performance Boosting feature of AMD CPUs. This
109 file has now been superseded by the more generic "boost" entry.
111 By enabling this option the acpi_cpufreq driver provides the old
112 entry in addition to the new boost ones, for compatibility reasons.
115 tristate "AMD Elan SC400 and SC410"
118 This adds the CPUFreq driver for AMD Elan SC400 and SC410
121 You need to specify the processor maximum speed as boot
122 parameter: elanfreq=maxspeed (in kHz) or as module
123 parameter "max_freq".
125 For details, take a look at <file:Documentation/cpu-freq/>.
130 tristate "AMD Elan SC520"
133 This adds the CPUFreq driver for AMD Elan SC520 processor.
135 For details, take a look at <file:Documentation/cpu-freq/>.
140 config X86_POWERNOW_K6
141 tristate "AMD Mobile K6-2/K6-3 PowerNow!"
144 This adds the CPUFreq driver for mobile AMD K6-2+ and mobile
145 AMD K6-3+ processors.
147 For details, take a look at <file:Documentation/cpu-freq/>.
151 config X86_POWERNOW_K7
152 tristate "AMD Mobile Athlon/Duron PowerNow!"
155 This adds the CPUFreq driver for mobile AMD K7 mobile processors.
157 For details, take a look at <file:Documentation/cpu-freq/>.
161 config X86_POWERNOW_K7_ACPI
163 depends on X86_POWERNOW_K7 && ACPI_PROCESSOR
164 depends on !(X86_POWERNOW_K7 = y && ACPI_PROCESSOR = m)
168 config X86_POWERNOW_K8
169 tristate "AMD Opteron/Athlon64 PowerNow!"
170 depends on ACPI && ACPI_PROCESSOR && X86_ACPI_CPUFREQ
172 This adds the CPUFreq driver for K8/early Opteron/Athlon64 processors.
173 Support for K10 and newer processors is now in acpi-cpufreq.
175 To compile this driver as a module, choose M here: the
176 module will be called powernow-k8.
178 For details, take a look at <file:Documentation/cpu-freq/>.
180 config X86_AMD_FREQ_SENSITIVITY
181 tristate "AMD frequency sensitivity feedback powersave bias"
182 depends on CPU_FREQ_GOV_ONDEMAND && X86_ACPI_CPUFREQ && CPU_SUP_AMD
184 This adds AMD-specific powersave bias function to the ondemand
185 governor, which allows it to make more power-conscious frequency
186 change decisions based on feedback from hardware (available on AMD
187 Family 16h and above).
189 Hardware feedback tells software how "sensitive" to frequency changes
190 the CPUs' workloads are. CPU-bound workloads will be more sensitive
191 -- they will perform better as frequency increases. Memory/IO-bound
192 workloads will be less sensitive -- they will not necessarily perform
193 better as frequency increases.
197 config X86_GX_SUSPMOD
198 tristate "Cyrix MediaGX/NatSemi Geode Suspend Modulation"
199 depends on X86_32 && PCI
201 This add the CPUFreq driver for NatSemi Geode processors which
202 support suspend modulation.
204 For details, take a look at <file:Documentation/cpu-freq/>.
208 config X86_SPEEDSTEP_CENTRINO
209 tristate "Intel Enhanced SpeedStep (deprecated)"
210 select X86_SPEEDSTEP_CENTRINO_TABLE if X86_32
211 depends on X86_32 || (X86_64 && ACPI_PROCESSOR)
213 This is deprecated and this functionality is now merged into
214 acpi_cpufreq (X86_ACPI_CPUFREQ). Use that driver instead of
216 This adds the CPUFreq driver for Enhanced SpeedStep enabled
217 mobile CPUs. This means Intel Pentium M (Centrino) CPUs
218 or 64bit enabled Intel Xeons.
220 To compile this driver as a module, choose M here: the
221 module will be called speedstep-centrino.
223 For details, take a look at <file:Documentation/cpu-freq/>.
227 config X86_SPEEDSTEP_CENTRINO_TABLE
228 bool "Built-in tables for Banias CPUs"
229 depends on X86_32 && X86_SPEEDSTEP_CENTRINO
232 Use built-in tables for Banias CPUs if ACPI encoding
237 config X86_SPEEDSTEP_ICH
238 tristate "Intel Speedstep on ICH-M chipsets (ioport interface)"
241 This adds the CPUFreq driver for certain mobile Intel Pentium III
242 (Coppermine), all mobile Intel Pentium III-M (Tualatin) and all
243 mobile Intel Pentium 4 P4-M on systems which have an Intel ICH2,
244 ICH3 or ICH4 southbridge.
246 For details, take a look at <file:Documentation/cpu-freq/>.
250 config X86_SPEEDSTEP_SMI
251 tristate "Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface)"
254 This adds the CPUFreq driver for certain mobile Intel Pentium III
255 (Coppermine), all mobile Intel Pentium III-M (Tualatin)
256 on systems which have an Intel 440BX/ZX/MX southbridge.
258 For details, take a look at <file:Documentation/cpu-freq/>.
262 config X86_P4_CLOCKMOD
263 tristate "Intel Pentium 4 clock modulation"
265 This adds the CPUFreq driver for Intel Pentium 4 / XEON
266 processors. When enabled it will lower CPU temperature by skipping
269 This driver should be only used in exceptional
270 circumstances when very low power is needed because it causes severe
271 slowdowns and noticeable latencies. Normally Speedstep should be used
274 To compile this driver as a module, choose M here: the
275 module will be called p4-clockmod.
277 For details, take a look at <file:Documentation/cpu-freq/>.
279 Unless you are absolutely sure say N.
281 config X86_CPUFREQ_NFORCE2
282 tristate "nVidia nForce2 FSB changing"
285 This adds the CPUFreq driver for FSB changing on nVidia nForce2
288 For details, take a look at <file:Documentation/cpu-freq/>.
293 tristate "Transmeta LongRun"
296 This adds the CPUFreq driver for Transmeta Crusoe and Efficeon processors
297 which support LongRun.
299 For details, take a look at <file:Documentation/cpu-freq/>.
304 tristate "VIA Cyrix III Longhaul"
305 depends on X86_32 && ACPI_PROCESSOR
307 This adds the CPUFreq driver for VIA Samuel/CyrixIII,
308 VIA Cyrix Samuel/C3, VIA Cyrix Ezra and VIA Cyrix Ezra-T
311 For details, take a look at <file:Documentation/cpu-freq/>.
315 config X86_E_POWERSAVER
316 tristate "VIA C7 Enhanced PowerSaver (DANGEROUS)"
317 depends on X86_32 && ACPI_PROCESSOR
319 This adds the CPUFreq driver for VIA C7 processors. However, this driver
320 does not have any safeguards to prevent operating the CPU out of spec
321 and is thus considered dangerous. Please use the regular ACPI cpufreq
322 driver, enabled by CONFIG_X86_ACPI_CPUFREQ.
326 comment "shared options"
328 config X86_SPEEDSTEP_LIB
330 default (X86_SPEEDSTEP_ICH || X86_SPEEDSTEP_SMI || X86_P4_CLOCKMOD)
332 config X86_SPEEDSTEP_RELAXED_CAP_CHECK
333 bool "Relaxed speedstep capability checks"
334 depends on X86_32 && (X86_SPEEDSTEP_SMI || X86_SPEEDSTEP_ICH)
336 Don't perform all checks for a speedstep capable system which would
337 normally be done. Some ancient or strange systems, though speedstep
338 capable, don't always indicate that they are speedstep capable. This
339 option lets the probing code bypass some of those checks if the
340 parameter "relaxed_check=1" is passed to the module.