mirror of
https://github.com/torvalds/linux.git
synced 2024-12-11 05:33:09 +00:00
c88ad30e3f
Users are having more success with amd-pstate since the introduction of EPP and Guided modes. To expose the driver to more users by default introduce a kernel configuration option for setting the default mode. Users can use an integer to map out which default mode they want to use in lieu of a kernel command line option. This will default to EPP, but only if: 1) The CPU supports an MSR. 2) The system profile is identified 3) The system profile is identified as a non-server by the FADT. Link: https://gitlab.freedesktop.org/hadess/power-profiles-daemon/-/merge_requests/121 Acked-by: Huang Rui <ray.huang@amd.com> Reviewed-by: Gautham R. Shenoy <gautham.shenoy@amd.com> Co-developed-by: Perry Yuan <perry.yuan@amd.com> Signed-off-by: Perry Yuan <perry.yuan@amd.com> Signed-off-by: Mario Limonciello <mario.limonciello@amd.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
342 lines
10 KiB
Plaintext
342 lines
10 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0-only
|
|
#
|
|
# x86 CPU Frequency scaling drivers
|
|
#
|
|
|
|
config X86_INTEL_PSTATE
|
|
bool "Intel P state control"
|
|
depends on X86
|
|
select ACPI_PROCESSOR if ACPI
|
|
select ACPI_CPPC_LIB if X86_64 && ACPI && SCHED_MC_PRIO
|
|
select CPU_FREQ_GOV_PERFORMANCE
|
|
select CPU_FREQ_GOV_SCHEDUTIL if SMP
|
|
help
|
|
This driver provides a P state for Intel core processors.
|
|
The driver implements an internal governor and will become
|
|
the scaling driver and governor for Sandy bridge processors.
|
|
|
|
When this driver is enabled it will become the preferred
|
|
scaling driver for Sandy bridge processors.
|
|
|
|
If in doubt, say N.
|
|
|
|
config X86_PCC_CPUFREQ
|
|
tristate "Processor Clocking Control interface driver"
|
|
depends on ACPI && ACPI_PROCESSOR
|
|
help
|
|
This driver adds support for the PCC interface.
|
|
|
|
For details, take a look at:
|
|
<file:Documentation/admin-guide/pm/cpufreq_drivers.rst>.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called pcc-cpufreq.
|
|
|
|
If in doubt, say N.
|
|
|
|
config X86_AMD_PSTATE
|
|
bool "AMD Processor P-State driver"
|
|
depends on X86 && ACPI
|
|
select ACPI_PROCESSOR
|
|
select ACPI_CPPC_LIB if X86_64
|
|
select CPU_FREQ_GOV_SCHEDUTIL if SMP
|
|
help
|
|
This driver adds a CPUFreq driver which utilizes a fine grain
|
|
processor performance frequency control range instead of legacy
|
|
performance levels. _CPC needs to be present in the ACPI tables
|
|
of the system.
|
|
|
|
For details, take a look at:
|
|
<file:Documentation/admin-guide/pm/amd-pstate.rst>.
|
|
|
|
If in doubt, say N.
|
|
|
|
config X86_AMD_PSTATE_DEFAULT_MODE
|
|
int "AMD Processor P-State default mode"
|
|
depends on X86_AMD_PSTATE
|
|
default 3 if X86_AMD_PSTATE
|
|
range 1 4
|
|
help
|
|
Select the default mode the amd-pstate driver will use on
|
|
supported hardware.
|
|
The value set has the following meanings:
|
|
1 -> Disabled
|
|
2 -> Passive
|
|
3 -> Active (EPP)
|
|
4 -> Guided
|
|
|
|
For details, take a look at:
|
|
<file:Documentation/admin-guide/pm/amd-pstate.rst>.
|
|
|
|
config X86_AMD_PSTATE_UT
|
|
tristate "selftest for AMD Processor P-State driver"
|
|
depends on X86 && ACPI_PROCESSOR
|
|
default n
|
|
help
|
|
This kernel module is used for testing. It's safe to say M here.
|
|
|
|
It can also be built-in without X86_AMD_PSTATE enabled.
|
|
Currently, only tests for amd-pstate are supported. If X86_AMD_PSTATE
|
|
is set disabled, it can tell the users test can only run on amd-pstate
|
|
driver, please set X86_AMD_PSTATE enabled.
|
|
In the future, comparison tests will be added. It can set amd-pstate
|
|
disabled and set acpi-cpufreq enabled to run test cases, then compare
|
|
the test results.
|
|
|
|
config X86_ACPI_CPUFREQ
|
|
tristate "ACPI Processor P-States driver"
|
|
depends on ACPI_PROCESSOR
|
|
help
|
|
This driver adds a CPUFreq driver which utilizes the ACPI
|
|
Processor Performance States.
|
|
This driver also supports Intel Enhanced Speedstep and newer
|
|
AMD CPUs.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called acpi-cpufreq.
|
|
|
|
For details, take a look at <file:Documentation/cpu-freq/>.
|
|
|
|
If in doubt, say N.
|
|
|
|
config X86_ACPI_CPUFREQ_CPB
|
|
default y
|
|
bool "Legacy cpb sysfs knob support for AMD CPUs"
|
|
depends on X86_ACPI_CPUFREQ && CPU_SUP_AMD
|
|
help
|
|
The powernow-k8 driver used to provide a sysfs knob called "cpb"
|
|
to disable the Core Performance Boosting feature of AMD CPUs. This
|
|
file has now been superseded by the more generic "boost" entry.
|
|
|
|
By enabling this option the acpi_cpufreq driver provides the old
|
|
entry in addition to the new boost ones, for compatibility reasons.
|
|
|
|
config ELAN_CPUFREQ
|
|
tristate "AMD Elan SC400 and SC410"
|
|
depends on MELAN
|
|
help
|
|
This adds the CPUFreq driver for AMD Elan SC400 and SC410
|
|
processors.
|
|
|
|
You need to specify the processor maximum speed as boot
|
|
parameter: elanfreq=maxspeed (in kHz) or as module
|
|
parameter "max_freq".
|
|
|
|
For details, take a look at <file:Documentation/cpu-freq/>.
|
|
|
|
If in doubt, say N.
|
|
|
|
config SC520_CPUFREQ
|
|
tristate "AMD Elan SC520"
|
|
depends on MELAN
|
|
help
|
|
This adds the CPUFreq driver for AMD Elan SC520 processor.
|
|
|
|
For details, take a look at <file:Documentation/cpu-freq/>.
|
|
|
|
If in doubt, say N.
|
|
|
|
|
|
config X86_POWERNOW_K6
|
|
tristate "AMD Mobile K6-2/K6-3 PowerNow!"
|
|
depends on X86_32
|
|
help
|
|
This adds the CPUFreq driver for mobile AMD K6-2+ and mobile
|
|
AMD K6-3+ processors.
|
|
|
|
For details, take a look at <file:Documentation/cpu-freq/>.
|
|
|
|
If in doubt, say N.
|
|
|
|
config X86_POWERNOW_K7
|
|
tristate "AMD Mobile Athlon/Duron PowerNow!"
|
|
depends on X86_32
|
|
help
|
|
This adds the CPUFreq driver for mobile AMD K7 mobile processors.
|
|
|
|
For details, take a look at <file:Documentation/cpu-freq/>.
|
|
|
|
If in doubt, say N.
|
|
|
|
config X86_POWERNOW_K7_ACPI
|
|
bool
|
|
depends on X86_POWERNOW_K7 && ACPI_PROCESSOR
|
|
depends on !(X86_POWERNOW_K7 = y && ACPI_PROCESSOR = m)
|
|
depends on X86_32
|
|
default y
|
|
|
|
config X86_POWERNOW_K8
|
|
tristate "AMD Opteron/Athlon64 PowerNow!"
|
|
depends on ACPI && ACPI_PROCESSOR && X86_ACPI_CPUFREQ
|
|
help
|
|
This adds the CPUFreq driver for K8/early Opteron/Athlon64 processors.
|
|
Support for K10 and newer processors is now in acpi-cpufreq.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called powernow-k8.
|
|
|
|
For details, take a look at <file:Documentation/cpu-freq/>.
|
|
|
|
config X86_AMD_FREQ_SENSITIVITY
|
|
tristate "AMD frequency sensitivity feedback powersave bias"
|
|
depends on CPU_FREQ_GOV_ONDEMAND && X86_ACPI_CPUFREQ && CPU_SUP_AMD
|
|
help
|
|
This adds AMD-specific powersave bias function to the ondemand
|
|
governor, which allows it to make more power-conscious frequency
|
|
change decisions based on feedback from hardware (available on AMD
|
|
Family 16h and above).
|
|
|
|
Hardware feedback tells software how "sensitive" to frequency changes
|
|
the CPUs' workloads are. CPU-bound workloads will be more sensitive
|
|
-- they will perform better as frequency increases. Memory/IO-bound
|
|
workloads will be less sensitive -- they will not necessarily perform
|
|
better as frequency increases.
|
|
|
|
If in doubt, say N.
|
|
|
|
config X86_GX_SUSPMOD
|
|
tristate "Cyrix MediaGX/NatSemi Geode Suspend Modulation"
|
|
depends on X86_32 && PCI
|
|
help
|
|
This add the CPUFreq driver for NatSemi Geode processors which
|
|
support suspend modulation.
|
|
|
|
For details, take a look at <file:Documentation/cpu-freq/>.
|
|
|
|
If in doubt, say N.
|
|
|
|
config X86_SPEEDSTEP_CENTRINO
|
|
tristate "Intel Enhanced SpeedStep (deprecated)"
|
|
select X86_SPEEDSTEP_CENTRINO_TABLE if X86_32
|
|
depends on X86_32 || (X86_64 && ACPI_PROCESSOR)
|
|
help
|
|
This is deprecated and this functionality is now merged into
|
|
acpi_cpufreq (X86_ACPI_CPUFREQ). Use that driver instead of
|
|
speedstep_centrino.
|
|
This adds the CPUFreq driver for Enhanced SpeedStep enabled
|
|
mobile CPUs. This means Intel Pentium M (Centrino) CPUs
|
|
or 64bit enabled Intel Xeons.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called speedstep-centrino.
|
|
|
|
For details, take a look at <file:Documentation/cpu-freq/>.
|
|
|
|
If in doubt, say N.
|
|
|
|
config X86_SPEEDSTEP_CENTRINO_TABLE
|
|
bool "Built-in tables for Banias CPUs"
|
|
depends on X86_32 && X86_SPEEDSTEP_CENTRINO
|
|
default y
|
|
help
|
|
Use built-in tables for Banias CPUs if ACPI encoding
|
|
is not available.
|
|
|
|
If in doubt, say N.
|
|
|
|
config X86_SPEEDSTEP_ICH
|
|
tristate "Intel Speedstep on ICH-M chipsets (ioport interface)"
|
|
depends on X86_32
|
|
help
|
|
This adds the CPUFreq driver for certain mobile Intel Pentium III
|
|
(Coppermine), all mobile Intel Pentium III-M (Tualatin) and all
|
|
mobile Intel Pentium 4 P4-M on systems which have an Intel ICH2,
|
|
ICH3 or ICH4 southbridge.
|
|
|
|
For details, take a look at <file:Documentation/cpu-freq/>.
|
|
|
|
If in doubt, say N.
|
|
|
|
config X86_SPEEDSTEP_SMI
|
|
tristate "Intel SpeedStep on 440BX/ZX/MX chipsets (SMI interface)"
|
|
depends on X86_32
|
|
help
|
|
This adds the CPUFreq driver for certain mobile Intel Pentium III
|
|
(Coppermine), all mobile Intel Pentium III-M (Tualatin)
|
|
on systems which have an Intel 440BX/ZX/MX southbridge.
|
|
|
|
For details, take a look at <file:Documentation/cpu-freq/>.
|
|
|
|
If in doubt, say N.
|
|
|
|
config X86_P4_CLOCKMOD
|
|
tristate "Intel Pentium 4 clock modulation"
|
|
help
|
|
This adds the CPUFreq driver for Intel Pentium 4 / XEON
|
|
processors. When enabled it will lower CPU temperature by skipping
|
|
clocks.
|
|
|
|
This driver should be only used in exceptional
|
|
circumstances when very low power is needed because it causes severe
|
|
slowdowns and noticeable latencies. Normally Speedstep should be used
|
|
instead.
|
|
|
|
To compile this driver as a module, choose M here: the
|
|
module will be called p4-clockmod.
|
|
|
|
For details, take a look at <file:Documentation/cpu-freq/>.
|
|
|
|
Unless you are absolutely sure say N.
|
|
|
|
config X86_CPUFREQ_NFORCE2
|
|
tristate "nVidia nForce2 FSB changing"
|
|
depends on X86_32
|
|
help
|
|
This adds the CPUFreq driver for FSB changing on nVidia nForce2
|
|
platforms.
|
|
|
|
For details, take a look at <file:Documentation/cpu-freq/>.
|
|
|
|
If in doubt, say N.
|
|
|
|
config X86_LONGRUN
|
|
tristate "Transmeta LongRun"
|
|
depends on X86_32
|
|
help
|
|
This adds the CPUFreq driver for Transmeta Crusoe and Efficeon processors
|
|
which support LongRun.
|
|
|
|
For details, take a look at <file:Documentation/cpu-freq/>.
|
|
|
|
If in doubt, say N.
|
|
|
|
config X86_LONGHAUL
|
|
tristate "VIA Cyrix III Longhaul"
|
|
depends on X86_32 && ACPI_PROCESSOR
|
|
help
|
|
This adds the CPUFreq driver for VIA Samuel/CyrixIII,
|
|
VIA Cyrix Samuel/C3, VIA Cyrix Ezra and VIA Cyrix Ezra-T
|
|
processors.
|
|
|
|
For details, take a look at <file:Documentation/cpu-freq/>.
|
|
|
|
If in doubt, say N.
|
|
|
|
config X86_E_POWERSAVER
|
|
tristate "VIA C7 Enhanced PowerSaver (DANGEROUS)"
|
|
depends on X86_32 && ACPI_PROCESSOR
|
|
help
|
|
This adds the CPUFreq driver for VIA C7 processors. However, this driver
|
|
does not have any safeguards to prevent operating the CPU out of spec
|
|
and is thus considered dangerous. Please use the regular ACPI cpufreq
|
|
driver, enabled by CONFIG_X86_ACPI_CPUFREQ.
|
|
|
|
If in doubt, say N.
|
|
|
|
comment "shared options"
|
|
|
|
config X86_SPEEDSTEP_LIB
|
|
tristate
|
|
default (X86_SPEEDSTEP_ICH || X86_SPEEDSTEP_SMI || X86_P4_CLOCKMOD)
|
|
|
|
config X86_SPEEDSTEP_RELAXED_CAP_CHECK
|
|
bool "Relaxed speedstep capability checks"
|
|
depends on X86_32 && (X86_SPEEDSTEP_SMI || X86_SPEEDSTEP_ICH)
|
|
help
|
|
Don't perform all checks for a speedstep capable system which would
|
|
normally be done. Some ancient or strange systems, though speedstep
|
|
capable, don't always indicate that they are speedstep capable. This
|
|
option lets the probing code bypass some of those checks if the
|
|
parameter "relaxed_check=1" is passed to the module.
|
|
|