intel_pstate: provide option to only use intel_pstate with HWP
authorKristen Carlson Accardi <kristen@linux.intel.com>
Fri, 6 Feb 2015 21:41:55 +0000 (13:41 -0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Fri, 6 Feb 2015 21:54:18 +0000 (22:54 +0100)
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>
Documentation/kernel-parameters.txt
drivers/cpufreq/intel_pstate.c

index 4df73da11adc586344ad6474ccb66f09ee22d66e..07e6701a1439e389233c568b909aa613c46a5b6f 100644 (file)
@@ -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)
index e7e808d9a8afb4f1a17391715df40ab5a4a3c3ac..872c5772c5d358ab8fafcf723579cbf2b020dc47 100644 (file)
@@ -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);