diff mbox

intel_pstate: provide option to only use intel_pstate with HWP

Message ID 1423258915-26457-1-git-send-email-kristen@linux.intel.com (mailing list archive)
State Accepted, archived
Delegated to: Rafael Wysocki
Headers show

Commit Message

Kristen Carlson Accardi Feb. 6, 2015, 9:41 p.m. UTC
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>
---
 Documentation/kernel-parameters.txt | 3 +++
 drivers/cpufreq/intel_pstate.c      | 6 ++++++
 2 files changed, 9 insertions(+)

Comments

Rafael J. Wysocki Feb. 6, 2015, 10:31 p.m. UTC | #1
On Friday, February 06, 2015 01:41:55 PM Kristen Carlson Accardi wrote:
> 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>

OK, queued up for 3.20, thanks!

> ---
>  Documentation/kernel-parameters.txt | 3 +++
>  drivers/cpufreq/intel_pstate.c      | 6 ++++++
>  2 files changed, 9 insertions(+)
> 
> diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
> index 4df73da..07e6701 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.
>  		       no_hwp
>  		         Do not enable hardware P state control (HWP)
>  			 if available.
> +		hwp_only
> +			Only load intel_pstate on systems which support
> +			hardware P state control (HWP) if available.
>  
>  	intremap=	[X86-64, Intel-IOMMU]
>  			on	enable Interrupt Remapping (default)
> diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
> index e7e808d..872c577 100644
> --- a/drivers/cpufreq/intel_pstate.c
> +++ b/drivers/cpufreq/intel_pstate.c
> @@ -1019,6 +1019,7 @@ static struct cpufreq_driver intel_pstate_driver = {
>  
>  static int __initdata no_load;
>  static int __initdata no_hwp;
> +static int __initdata hwp_only;
>  static unsigned int force_load;
>  
>  static int intel_pstate_msrs_not_valid(void)
> @@ -1216,6 +1217,9 @@ static int __init intel_pstate_init(void)
>  	if (cpu_has(c,X86_FEATURE_HWP) && !no_hwp)
>  		intel_pstate_hwp_enable();
>  
> +	if (!hwp_active && hwp_only)
> +		goto out;
> +
>  	rc = cpufreq_register_driver(&intel_pstate_driver);
>  	if (rc)
>  		goto out;
> @@ -1250,6 +1254,8 @@ static int __init intel_pstate_setup(char *str)
>  		no_hwp = 1;
>  	if (!strcmp(str, "force"))
>  		force_load = 1;
> +	if (!strcmp(str, "hwp_only"))
> +		hwp_only = 1;
>  	return 0;
>  }
>  early_param("intel_pstate", intel_pstate_setup);
>
diff mbox

Patch

diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 4df73da..07e6701 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.
 		       no_hwp
 		         Do not enable hardware P state control (HWP)
 			 if available.
+		hwp_only
+			Only load intel_pstate on systems which support
+			hardware P state control (HWP) if available.
 
 	intremap=	[X86-64, Intel-IOMMU]
 			on	enable Interrupt Remapping (default)
diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
index e7e808d..872c577 100644
--- a/drivers/cpufreq/intel_pstate.c
+++ b/drivers/cpufreq/intel_pstate.c
@@ -1019,6 +1019,7 @@  static struct cpufreq_driver intel_pstate_driver = {
 
 static int __initdata no_load;
 static int __initdata no_hwp;
+static int __initdata hwp_only;
 static unsigned int force_load;
 
 static int intel_pstate_msrs_not_valid(void)
@@ -1216,6 +1217,9 @@  static int __init intel_pstate_init(void)
 	if (cpu_has(c,X86_FEATURE_HWP) && !no_hwp)
 		intel_pstate_hwp_enable();
 
+	if (!hwp_active && hwp_only)
+		goto out;
+
 	rc = cpufreq_register_driver(&intel_pstate_driver);
 	if (rc)
 		goto out;
@@ -1250,6 +1254,8 @@  static int __init intel_pstate_setup(char *str)
 		no_hwp = 1;
 	if (!strcmp(str, "force"))
 		force_load = 1;
+	if (!strcmp(str, "hwp_only"))
+		hwp_only = 1;
 	return 0;
 }
 early_param("intel_pstate", intel_pstate_setup);