OSDN Git Service

cpufreq: intel_pstate: Fix active mode setting from command line
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 13 Jul 2020 13:58:38 +0000 (15:58 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 13 Jul 2020 15:55:57 +0000 (17:55 +0200)
If intel_pstate starts in the passive mode by default (that happens
when the processor in the system doesn't support HWP), passing
intel_pstate=active in the kernel command line doesn't work, so
fix that.

Fixes: 33aa46f252c7 ("cpufreq: intel_pstate: Use passive mode by default without HWP")
Reported-by: Doug Smythies <dsmythies@telus.net>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Doug Smythies <dsmythies@telus.net>
drivers/cpufreq/intel_pstate.c

index e771e8b..7e0f788 100644 (file)
@@ -2464,7 +2464,7 @@ static struct cpufreq_driver intel_cpufreq = {
        .name           = "intel_cpufreq",
 };
 
-static struct cpufreq_driver *default_driver = &intel_pstate;
+static struct cpufreq_driver *default_driver;
 
 static void intel_pstate_driver_cleanup(void)
 {
@@ -2758,6 +2758,7 @@ static int __init intel_pstate_init(void)
                        hwp_active++;
                        hwp_mode_bdw = id->driver_data;
                        intel_pstate.attr = hwp_cpufreq_attrs;
+                       default_driver = &intel_pstate;
                        goto hwp_cpu_matched;
                }
        } else {
@@ -2775,7 +2776,8 @@ static int __init intel_pstate_init(void)
                return -ENODEV;
        }
        /* Without HWP start in the passive mode. */
-       default_driver = &intel_cpufreq;
+       if (!default_driver)
+               default_driver = &intel_cpufreq;
 
 hwp_cpu_matched:
        /*
@@ -2820,6 +2822,8 @@ static int __init intel_pstate_setup(char *str)
 
        if (!strcmp(str, "disable")) {
                no_load = 1;
+       } else if (!strcmp(str, "active")) {
+               default_driver = &intel_pstate;
        } else if (!strcmp(str, "passive")) {
                default_driver = &intel_cpufreq;
                no_hwp = 1;