diff options
-rw-r--r-- | Documentation/kernel-parameters.txt | 9 | ||||
-rw-r--r-- | drivers/cpufreq/intel_pstate.c | 6 |
2 files changed, 14 insertions, 1 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 5fdf714f40a0..d006bb22f3ca 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
@@ -1446,6 +1446,15 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
1446 | disable | 1446 | disable |
1447 | Do not enable intel_pstate as the default | 1447 | Do not enable intel_pstate as the default |
1448 | scaling driver for the supported processors | 1448 | scaling driver for the supported processors |
1449 | force | ||
1450 | Enable intel_pstate on systems that prohibit it by default | ||
1451 | in favor of acpi-cpufreq. Forcing the intel_pstate driver | ||
1452 | instead of acpi-cpufreq may disable platform features, such | ||
1453 | as thermal controls and power capping, that rely on ACPI | ||
1454 | P-States information being indicated to OSPM and therefore | ||
1455 | should be used with caution. This option does not work with | ||
1456 | processors that aren't supported by the intel_pstate driver | ||
1457 | or on platforms that use pcc-cpufreq instead of acpi-cpufreq. | ||
1449 | no_hwp | 1458 | no_hwp |
1450 | Do not enable hardware P state control (HWP) | 1459 | Do not enable hardware P state control (HWP) |
1451 | if available. | 1460 | if available. |
diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c index 1405b393c93d..0e841eecb743 100644 --- a/drivers/cpufreq/intel_pstate.c +++ b/drivers/cpufreq/intel_pstate.c | |||
@@ -948,6 +948,7 @@ static struct cpufreq_driver intel_pstate_driver = { | |||
948 | 948 | ||
949 | static int __initdata no_load; | 949 | static int __initdata no_load; |
950 | static int __initdata no_hwp; | 950 | static int __initdata no_hwp; |
951 | static unsigned int force_load; | ||
951 | 952 | ||
952 | static int intel_pstate_msrs_not_valid(void) | 953 | static int intel_pstate_msrs_not_valid(void) |
953 | { | 954 | { |
@@ -1094,7 +1095,8 @@ static bool intel_pstate_platform_pwr_mgmt_exists(void) | |||
1094 | case PSS: | 1095 | case PSS: |
1095 | return intel_pstate_no_acpi_pss(); | 1096 | return intel_pstate_no_acpi_pss(); |
1096 | case PPC: | 1097 | case PPC: |
1097 | return intel_pstate_has_acpi_ppc(); | 1098 | return intel_pstate_has_acpi_ppc() && |
1099 | (!force_load); | ||
1098 | } | 1100 | } |
1099 | } | 1101 | } |
1100 | 1102 | ||
@@ -1175,6 +1177,8 @@ static int __init intel_pstate_setup(char *str) | |||
1175 | no_load = 1; | 1177 | no_load = 1; |
1176 | if (!strcmp(str, "no_hwp")) | 1178 | if (!strcmp(str, "no_hwp")) |
1177 | no_hwp = 1; | 1179 | no_hwp = 1; |
1180 | if (!strcmp(str, "force")) | ||
1181 | force_load = 1; | ||
1178 | return 0; | 1182 | return 0; |
1179 | } | 1183 | } |
1180 | early_param("intel_pstate", intel_pstate_setup); | 1184 | early_param("intel_pstate", intel_pstate_setup); |