cpufreq: intel_pstate: Enforce _PPC limits
authorSrinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Wed, 27 Apr 2016 22:48:06 +0000 (15:48 -0700)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 27 Apr 2016 23:01:39 +0000 (01:01 +0200)
commit9522a2ff9cde26ef48c30e0c9ca9ae4dfb669764
tree897b9d98dd831b2b6cc5d4fe0954840a9eae45d5
parenteaa2c3aeef83f096cd1ec73df1310712e423337b
cpufreq: intel_pstate: Enforce _PPC limits

Use ACPI _PPC notification to limit max P state driver will request.
ACPI _PPC change notification is sent by BIOS to limit max P state
in several cases:
- Reduce impact of platform thermal condition
- When Config TDP feature is used, a changed _PPC is sent to
follow TDP change
- Remote node managers in server want to control platform power
via baseboard management controller (BMC)

This change registers with ACPI processor performance lib so that
_PPC changes are notified to cpufreq core, which in turns will
result in call to .setpolicy() callback. Also the way _PSS
table identifies a turbo frequency is not compatible to max turbo
frequency in intel_pstate, so the very first entry in _PSS needs
to be adjusted.

This feature can be turned on by using kernel parameters:
intel_pstate=support_acpi_ppc

Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
[ rjw: Minor cleanups ]
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Documentation/kernel-parameters.txt
drivers/cpufreq/Kconfig.x86
drivers/cpufreq/intel_pstate.c