diff options
| author | Kristen Carlson Accardi <kristen@linux.intel.com> | 2015-02-06 16:41:55 -0500 |
|---|---|---|
| committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2015-02-06 16:54:18 -0500 |
| commit | d64c3b0bb9195d4de856d841337368d930cdb0ed (patch) | |
| tree | 489d9b39dde1926a2769c47ce185ef3a48d524c9 | |
| parent | 17ad13ba842bd5c197e20c17e107788aa0498ba9 (diff) | |
intel_pstate: provide option to only use intel_pstate with HWP
Allow users the option to disable the driver for any hardware
which does not support HWP.
Signed-off-by: Kristen Carlson Accardi <kristen@linux.intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
| -rw-r--r-- | Documentation/kernel-parameters.txt | 3 | ||||
| -rw-r--r-- | drivers/cpufreq/intel_pstate.c | 6 |
2 files changed, 9 insertions, 0 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 4df73da11adc..07e6701a1439 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
| @@ -1469,6 +1469,9 @@ bytes respectively. Such letter suffixes can also be entirely omitted. | |||
| 1469 | no_hwp | 1469 | no_hwp |
| 1470 | Do not enable hardware P state control (HWP) | 1470 | Do not enable hardware P state control (HWP) |
| 1471 | if available. | 1471 | if available. |
| 1472 | hwp_only | ||
| 1473 | Only load intel_pstate on systems which support | ||
| 1474 | hardware P state control (HWP) if available. | ||
| 1472 | 1475 | ||
| 1473 | intremap= [X86-64, Intel-IOMMU] | 1476 | intremap= [X86-64, Intel-IOMMU] |
| 1474 | on enable Interrupt Remapping (default) | 1477 | on enable Interrupt Remapping (default) |
diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c index e7e808d9a8af..872c5772c5d3 100644 --- a/drivers/cpufreq/intel_pstate.c +++ b/drivers/cpufreq/intel_pstate.c | |||
| @@ -1019,6 +1019,7 @@ static struct cpufreq_driver intel_pstate_driver = { | |||
| 1019 | 1019 | ||
| 1020 | static int __initdata no_load; | 1020 | static int __initdata no_load; |
| 1021 | static int __initdata no_hwp; | 1021 | static int __initdata no_hwp; |
| 1022 | static int __initdata hwp_only; | ||
| 1022 | static unsigned int force_load; | 1023 | static unsigned int force_load; |
| 1023 | 1024 | ||
| 1024 | static int intel_pstate_msrs_not_valid(void) | 1025 | static int intel_pstate_msrs_not_valid(void) |
| @@ -1216,6 +1217,9 @@ static int __init intel_pstate_init(void) | |||
| 1216 | if (cpu_has(c,X86_FEATURE_HWP) && !no_hwp) | 1217 | if (cpu_has(c,X86_FEATURE_HWP) && !no_hwp) |
| 1217 | intel_pstate_hwp_enable(); | 1218 | intel_pstate_hwp_enable(); |
| 1218 | 1219 | ||
| 1220 | if (!hwp_active && hwp_only) | ||
| 1221 | goto out; | ||
| 1222 | |||
| 1219 | rc = cpufreq_register_driver(&intel_pstate_driver); | 1223 | rc = cpufreq_register_driver(&intel_pstate_driver); |
| 1220 | if (rc) | 1224 | if (rc) |
| 1221 | goto out; | 1225 | goto out; |
| @@ -1250,6 +1254,8 @@ static int __init intel_pstate_setup(char *str) | |||
| 1250 | no_hwp = 1; | 1254 | no_hwp = 1; |
| 1251 | if (!strcmp(str, "force")) | 1255 | if (!strcmp(str, "force")) |
| 1252 | force_load = 1; | 1256 | force_load = 1; |
| 1257 | if (!strcmp(str, "hwp_only")) | ||
| 1258 | hwp_only = 1; | ||
| 1253 | return 0; | 1259 | return 0; |
| 1254 | } | 1260 | } |
| 1255 | early_param("intel_pstate", intel_pstate_setup); | 1261 | early_param("intel_pstate", intel_pstate_setup); |
