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