summaryrefslogtreecommitdiff
path: root/drivers/cpufreq/intel_pstate.c
diff options
context:
space:
mode:
authorSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>2016-04-27 15:48:08 -0700
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2016-04-28 01:01:39 +0200
commit2b3ec765058449caa27e2806a939a4bffcbeba64 (patch)
tree4c5170e80c1b4f0c8eb4e323bfb821ae7d42b4ba /drivers/cpufreq/intel_pstate.c
parent3be9200d512bfa8d6292f5dce6c02aa151821e09 (diff)
downloadlwn-2b3ec765058449caa27e2806a939a4bffcbeba64.tar.gz
lwn-2b3ec765058449caa27e2806a939a4bffcbeba64.zip
cpufreq: intel_pstate: Enable PPC enforcement for servers
For platforms which are controlled via remove node manager, enable _PPC by default. These platforms are mostly categorized as enterprise server or performance servers. These platforms needs to go through some certifications tests, which tests control via _PPC. The relative risk of enabling by default is low as this is is less likely that these systems have broken _PSS table. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'drivers/cpufreq/intel_pstate.c')
-rw-r--r--drivers/cpufreq/intel_pstate.c12
1 files changed, 11 insertions, 1 deletions
diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
index 31f6ffe0cf10..a0823e84ceca 100644
--- a/drivers/cpufreq/intel_pstate.c
+++ b/drivers/cpufreq/intel_pstate.c
@@ -347,6 +347,16 @@ static struct perf_limits *limits = &powersave_limits;
#endif
#ifdef CONFIG_ACPI
+
+static bool intel_pstate_get_ppc_enable_status(void)
+{
+ if (acpi_gbl_FADT.preferred_profile == PM_ENTERPRISE_SERVER ||
+ acpi_gbl_FADT.preferred_profile == PM_PERFORMANCE_SERVER)
+ return true;
+
+ return acpi_ppc;
+}
+
/*
* The max target pstate ratio is a 8 bit value in both PLATFORM_INFO MSR and
* in TURBO_RATIO_LIMIT MSR, which pstate driver stores in max_pstate and
@@ -370,7 +380,7 @@ static void intel_pstate_init_acpi_perf_limits(struct cpufreq_policy *policy)
int ret;
int i;
- if (!acpi_ppc)
+ if (!intel_pstate_get_ppc_enable_status())
return;
cpu = all_cpu_data[policy->cpu];