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