0001 # SPDX-License-Identifier: GPL-2.0-only
0002 #
0003 # x86 CPU Frequency scaling drivers
0004 #
0005
0006 config X86_INTEL_PSTATE
0007 bool "Intel P state control"
0008 depends on X86
0009 select ACPI_PROCESSOR if ACPI
0010 select ACPI_CPPC_LIB if X86_64 && ACPI && SCHED_MC_PRIO
0011 select CPU_FREQ_GOV_PERFORMANCE
0012 select CPU_FREQ_GOV_SCHEDUTIL if SMP
0013 help
0014 This driver provides a P state for Intel core processors.
0015 The driver implements an internal governor and will become
0016 the scaling driver and governor for Sandy bridge processors.
0017
0018 When this driver is enabled it will become the preferred
0019 scaling driver for Sandy bridge processors.
0020
0021 If in doubt, say N.
0022
0023 config X86_PCC_CPUFREQ
0024 tristate "Processor Clocking Control interface driver"
0025 depends on ACPI && ACPI_PROCESSOR
0026 help
0027 This driver adds support for the PCC interface.
0028
0029 For details, take a look at:
0030 <file:Documentation/admin-guide/pm/cpufreq_drivers.rst>.
0031
0032 To compile this driver as a module, choose M here: the
0033 module will be called pcc-cpufreq.
0034
0035 If in doubt, say N.
0036
0037 config X86_AMD_PSTATE
0038 tristate "AMD Processor P-State driver"
0039 depends on X86 && ACPI
0040 select ACPI_PROCESSOR
0041 select ACPI_CPPC_LIB if X86_64
0042 select CPU_FREQ_GOV_SCHEDUTIL if SMP
0043 help
0044 This driver adds a CPUFreq driver which utilizes a fine grain
0045 processor performance frequency control range instead of legacy
0046 performance levels. _CPC needs to be present in the ACPI tables
0047 of the system.
0048
0049 For details, take a look at:
0050 <file:Documentation/admin-guide/pm/amd-pstate.rst>.
0051
0052 If in doubt, say N.
0053
0054 config X86_ACPI_CPUFREQ
0055 tristate "ACPI Processor P-States driver"
0056 depends on ACPI_PROCESSOR
0057 help
0058 This driver adds a CPUFreq driver which utilizes the ACPI
0059 Processor Performance States.
0060 This driver also supports Intel Enhanced Speedstep and newer
0061 AMD CPUs.
0062
0063 To compile this driver as a module, choose M here: the
0064 module will be called acpi-cpufreq.
0065
0066 For details, take a look at <file:Documentation/cpu-freq/>.
0067
0068 If in doubt, say N.
0069
0070 config X86_ACPI_CPUFREQ_CPB
0071 default y
0072 bool "Legacy cpb sysfs knob support for AMD CPUs"
0073 depends on X86_ACPI_CPUFREQ && CPU_SUP_AMD
0074 help
0075 The powernow-k8 driver used to provide a sysfs knob called "cpb"
0076 to disable the Core Performance Boosting feature of AMD CPUs. This
0077 file has now been superseded by the more generic "boost" entry.
0078
0079 By enabling this option the acpi_cpufreq driver provides the old
0080 entry in addition to the new boost ones, for compatibility reasons.
0081
0082 config ELAN_CPUFREQ
0083 tristate "AMD Elan SC400 and SC410"
0084 depends on MELAN
0085 help
0086 This adds the CPUFreq driver for AMD Elan SC400 and SC410
0087 processors.
0088
0089 You need to specify the processor maximum speed as boot
0090 parameter: elanfreq=maxspeed (in kHz) or as module
0091 parameter "max_freq".
0092
0093 For details, take a look at <file:Documentation/cpu-freq/>.
0094
0095 If in doubt, say N.
0096
0097 config SC520_CPUFREQ
0098 tristate "AMD Elan SC520"
0099 depends on MELAN
0100 help
0101 This adds the CPUFreq driver for AMD Elan SC520 processor.
0102
0103 For details, take a look at <file:Documentation/cpu-freq/>.
0104
0105 If in doubt, say N.
0106
0107
0108 config X86_POWERNOW_K6
0109 tristate "AMD Mobile K6-2/K6-3 PowerNow!"
0110 depends on X86_32
0111 help
0112 This adds the CPUFreq driver for mobile AMD K6-2+ and mobile
0113 AMD K6-3+ processors.
0114
0115 For details, take a look at <file:Documentation/cpu-freq/>.
0116
0117 If in doubt, say N.
0118
0119 config X86_POWERNOW_K7
0120 tristate "AMD Mobile Athlon/Duron PowerNow!"
0121 depends on X86_32
0122 help
0123 This adds the CPUFreq driver for mobile AMD K7 mobile processors.
0124
0125 For details, take a look at <file:Documentation/cpu-freq/>.
0126
0127 If in doubt, say N.
0128
0129 config X86_POWERNOW_K7_ACPI
0130 bool
0131 depends on X86_POWERNOW_K7 && ACPI_PROCESSOR
0132 depends on !(X86_POWERNOW_K7 = y && ACPI_PROCESSOR = m)
0133 depends on X86_32
0134 default y
0135
0136 config X86_POWERNOW_K8
0137 tristate "AMD Opteron/Athlon64 PowerNow!"
0138 depends on ACPI && ACPI_PROCESSOR && X86_ACPI_CPUFREQ
0139 help
0140 This adds the CPUFreq driver for K8/early Opteron/Athlon64 processors.
0141 Support for K10 and newer processors is now in acpi-cpufreq.
0142
0143 To compile this driver as a module, choose M here: the
0144 module will be called powernow-k8.
0145
0146 For details, take a look at <file:Documentation/cpu-freq/>.
0147
0148 config X86_AMD_FREQ_SENSITIVITY
0149 tristate "AMD frequency sensitivity feedback powersave bias"
0150 depends on CPU_FREQ_GOV_ONDEMAND && X86_ACPI_CPUFREQ && CPU_SUP_AMD
0151 help
0152 This adds AMD-specific powersave bias function to the ondemand
0153 governor, which allows it to make more power-conscious frequency
0154 change decisions based on feedback from hardware (available on AMD
0155 Family 16h and above).
0156
0157 Hardware feedback tells software how "sensitive" to frequency changes
0158 the CPUs' workloads are. CPU-bound workloads will be more sensitive
0159 -- they will perform better as frequency increases. Memory/IO-bound
0160 workloads will be less sensitive -- they will not necessarily perform
0161 better as frequency increases.
0162
0163 If in doubt, say N.
0164
0165 config X86_GX_SUSPMOD
0166 tristate "Cyrix MediaGX/NatSemi Geode Suspend Modulation"
0167 depends on X86_32 && PCI
0168 help
0169 This add the CPUFreq driver for NatSemi Geode processors which
0170 support suspend modulation.
0171
0172 For details, take a look at <file:Documentation/cpu-freq/>.
0173
0174 If in doubt, say N.
0175
0176 config X86_SPEEDSTEP_CENTRINO
0177 tristate "Intel Enhanced SpeedStep (deprecated)"
0178 select X86_SPEEDSTEP_CENTRINO_TABLE if X86_32
0179 depends on X86_32 || (X86_64 && ACPI_PROCESSOR)
0180 help
0181 This is deprecated and this functionality is now merged into
0182 acpi_cpufreq (X86_ACPI_CPUFREQ). Use that driver instead of
0183 speedstep_centrino.
0184 This adds the CPUFreq driver for Enhanced SpeedStep enabled
0185 mobile CPUs. This means Intel Pentium M (Centrino) CPUs
0186 or 64bit enabled Intel Xeons.
0187
0188 To compile this driver as a module, choose M here: the
0189 module will be called speedstep-centrino.
0190
0191 For details, take a look at <file:Documentation/cpu-freq/>.
0192
0193 If in doubt, say N.
0194
0195 config X86_SPEEDSTEP_CENTRINO_TABLE
0196 bool "Built-in tables for Banias CPUs"
0197 depends on X86_32 && X86_SPEEDSTEP_CENTRINO
0198 default y
0199 help
0200 Use built-in tables for Banias CPUs if ACPI encoding
0201 is not available.
0202
0203 If in doubt, say N.
0204
0205 config X86_SPEEDSTEP_ICH
0206 tristate "Intel Speedstep on ICH-M chipsets (ioport interface)"
0207 depends on X86_32
0208 help
0209 This adds the CPUFreq driver for certain mobile Intel Pentium III
0210 (Coppermine), all mobile Intel Pentium III-M (Tualatin) and all
0211 mobile Intel Pentium 4 P4-M on systems which have an Intel ICH2,
0212 ICH3 or ICH4 southbridge.
0213
0214 For details, take a look at <file:Documentation/cpu-freq/>.
0215
0216 If in doubt, say N.
0217
0218 config X86_SPEEDSTEP_SMI
0219 tristate "Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface)"
0220 depends on X86_32
0221 help
0222 This adds the CPUFreq driver for certain mobile Intel Pentium III
0223 (Coppermine), all mobile Intel Pentium III-M (Tualatin)
0224 on systems which have an Intel 440BX/ZX/MX southbridge.
0225
0226 For details, take a look at <file:Documentation/cpu-freq/>.
0227
0228 If in doubt, say N.
0229
0230 config X86_P4_CLOCKMOD
0231 tristate "Intel Pentium 4 clock modulation"
0232 help
0233 This adds the CPUFreq driver for Intel Pentium 4 / XEON
0234 processors. When enabled it will lower CPU temperature by skipping
0235 clocks.
0236
0237 This driver should be only used in exceptional
0238 circumstances when very low power is needed because it causes severe
0239 slowdowns and noticeable latencies. Normally Speedstep should be used
0240 instead.
0241
0242 To compile this driver as a module, choose M here: the
0243 module will be called p4-clockmod.
0244
0245 For details, take a look at <file:Documentation/cpu-freq/>.
0246
0247 Unless you are absolutely sure say N.
0248
0249 config X86_CPUFREQ_NFORCE2
0250 tristate "nVidia nForce2 FSB changing"
0251 depends on X86_32
0252 help
0253 This adds the CPUFreq driver for FSB changing on nVidia nForce2
0254 platforms.
0255
0256 For details, take a look at <file:Documentation/cpu-freq/>.
0257
0258 If in doubt, say N.
0259
0260 config X86_LONGRUN
0261 tristate "Transmeta LongRun"
0262 depends on X86_32
0263 help
0264 This adds the CPUFreq driver for Transmeta Crusoe and Efficeon processors
0265 which support LongRun.
0266
0267 For details, take a look at <file:Documentation/cpu-freq/>.
0268
0269 If in doubt, say N.
0270
0271 config X86_LONGHAUL
0272 tristate "VIA Cyrix III Longhaul"
0273 depends on X86_32 && ACPI_PROCESSOR
0274 help
0275 This adds the CPUFreq driver for VIA Samuel/CyrixIII,
0276 VIA Cyrix Samuel/C3, VIA Cyrix Ezra and VIA Cyrix Ezra-T
0277 processors.
0278
0279 For details, take a look at <file:Documentation/cpu-freq/>.
0280
0281 If in doubt, say N.
0282
0283 config X86_E_POWERSAVER
0284 tristate "VIA C7 Enhanced PowerSaver (DANGEROUS)"
0285 depends on X86_32 && ACPI_PROCESSOR
0286 help
0287 This adds the CPUFreq driver for VIA C7 processors. However, this driver
0288 does not have any safeguards to prevent operating the CPU out of spec
0289 and is thus considered dangerous. Please use the regular ACPI cpufreq
0290 driver, enabled by CONFIG_X86_ACPI_CPUFREQ.
0291
0292 If in doubt, say N.
0293
0294 comment "shared options"
0295
0296 config X86_SPEEDSTEP_LIB
0297 tristate
0298 default (X86_SPEEDSTEP_ICH || X86_SPEEDSTEP_SMI || X86_P4_CLOCKMOD)
0299
0300 config X86_SPEEDSTEP_RELAXED_CAP_CHECK
0301 bool "Relaxed speedstep capability checks"
0302 depends on X86_32 && (X86_SPEEDSTEP_SMI || X86_SPEEDSTEP_ICH)
0303 help
0304 Don't perform all checks for a speedstep capable system which would
0305 normally be done. Some ancient or strange systems, though speedstep
0306 capable, don't always indicate that they are speedstep capable. This
0307 option lets the probing code bypass some of those checks if the
0308 parameter "relaxed_check=1" is passed to the module.
0309