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 tristate "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_UT
55 tristate "selftest for AMD Processor P-State driver"
56 depends on X86 && ACPI_PROCESSOR
59 This kernel module is used for testing. It's safe to say M here.
61 config X86_ACPI_CPUFREQ
62 tristate "ACPI Processor P-States driver"
63 depends on ACPI_PROCESSOR
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
70 To compile this driver as a module, choose M here: the
71 module will be called acpi-cpufreq.
73 For details, take a look at <file:Documentation/cpu-freq/>.
77 config X86_ACPI_CPUFREQ_CPB
79 bool "Legacy cpb sysfs knob support for AMD CPUs"
80 depends on X86_ACPI_CPUFREQ && CPU_SUP_AMD
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.
86 By enabling this option the acpi_cpufreq driver provides the old
87 entry in addition to the new boost ones, for compatibility reasons.
90 tristate "AMD Elan SC400 and SC410"
93 This adds the CPUFreq driver for AMD Elan SC400 and SC410
96 You need to specify the processor maximum speed as boot
97 parameter: elanfreq=maxspeed (in kHz) or as module
100 For details, take a look at <file:Documentation/cpu-freq/>.
105 tristate "AMD Elan SC520"
108 This adds the CPUFreq driver for AMD Elan SC520 processor.
110 For details, take a look at <file:Documentation/cpu-freq/>.
115 config X86_POWERNOW_K6
116 tristate "AMD Mobile K6-2/K6-3 PowerNow!"
119 This adds the CPUFreq driver for mobile AMD K6-2+ and mobile
120 AMD K6-3+ processors.
122 For details, take a look at <file:Documentation/cpu-freq/>.
126 config X86_POWERNOW_K7
127 tristate "AMD Mobile Athlon/Duron PowerNow!"
130 This adds the CPUFreq driver for mobile AMD K7 mobile processors.
132 For details, take a look at <file:Documentation/cpu-freq/>.
136 config X86_POWERNOW_K7_ACPI
138 depends on X86_POWERNOW_K7 && ACPI_PROCESSOR
139 depends on !(X86_POWERNOW_K7 = y && ACPI_PROCESSOR = m)
143 config X86_POWERNOW_K8
144 tristate "AMD Opteron/Athlon64 PowerNow!"
145 depends on ACPI && ACPI_PROCESSOR && X86_ACPI_CPUFREQ
147 This adds the CPUFreq driver for K8/early Opteron/Athlon64 processors.
148 Support for K10 and newer processors is now in acpi-cpufreq.
150 To compile this driver as a module, choose M here: the
151 module will be called powernow-k8.
153 For details, take a look at <file:Documentation/cpu-freq/>.
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
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).
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.
172 config X86_GX_SUSPMOD
173 tristate "Cyrix MediaGX/NatSemi Geode Suspend Modulation"
174 depends on X86_32 && PCI
176 This add the CPUFreq driver for NatSemi Geode processors which
177 support suspend modulation.
179 For details, take a look at <file:Documentation/cpu-freq/>.
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)
188 This is deprecated and this functionality is now merged into
189 acpi_cpufreq (X86_ACPI_CPUFREQ). Use that driver instead of
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.
195 To compile this driver as a module, choose M here: the
196 module will be called speedstep-centrino.
198 For details, take a look at <file:Documentation/cpu-freq/>.
202 config X86_SPEEDSTEP_CENTRINO_TABLE
203 bool "Built-in tables for Banias CPUs"
204 depends on X86_32 && X86_SPEEDSTEP_CENTRINO
207 Use built-in tables for Banias CPUs if ACPI encoding
212 config X86_SPEEDSTEP_ICH
213 tristate "Intel Speedstep on ICH-M chipsets (ioport interface)"
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.
221 For details, take a look at <file:Documentation/cpu-freq/>.
225 config X86_SPEEDSTEP_SMI
226 tristate "Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface)"
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.
233 For details, take a look at <file:Documentation/cpu-freq/>.
237 config X86_P4_CLOCKMOD
238 tristate "Intel Pentium 4 clock modulation"
240 This adds the CPUFreq driver for Intel Pentium 4 / XEON
241 processors. When enabled it will lower CPU temperature by skipping
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
249 To compile this driver as a module, choose M here: the
250 module will be called p4-clockmod.
252 For details, take a look at <file:Documentation/cpu-freq/>.
254 Unless you are absolutely sure say N.
256 config X86_CPUFREQ_NFORCE2
257 tristate "nVidia nForce2 FSB changing"
260 This adds the CPUFreq driver for FSB changing on nVidia nForce2
263 For details, take a look at <file:Documentation/cpu-freq/>.
268 tristate "Transmeta LongRun"
271 This adds the CPUFreq driver for Transmeta Crusoe and Efficeon processors
272 which support LongRun.
274 For details, take a look at <file:Documentation/cpu-freq/>.
279 tristate "VIA Cyrix III Longhaul"
280 depends on X86_32 && ACPI_PROCESSOR
282 This adds the CPUFreq driver for VIA Samuel/CyrixIII,
283 VIA Cyrix Samuel/C3, VIA Cyrix Ezra and VIA Cyrix Ezra-T
286 For details, take a look at <file:Documentation/cpu-freq/>.
290 config X86_E_POWERSAVER
291 tristate "VIA C7 Enhanced PowerSaver (DANGEROUS)"
292 depends on X86_32 && ACPI_PROCESSOR
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.
301 comment "shared options"
303 config X86_SPEEDSTEP_LIB
305 default (X86_SPEEDSTEP_ICH || X86_SPEEDSTEP_SMI || X86_P4_CLOCKMOD)
307 config X86_SPEEDSTEP_RELAXED_CAP_CHECK
308 bool "Relaxed speedstep capability checks"
309 depends on X86_32 && (X86_SPEEDSTEP_SMI || X86_SPEEDSTEP_ICH)
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.