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