]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commit - drivers/cpufreq/intel_pstate.c
cpufreq: intel_pstate: Register when ACPI PCCH is present
authorRafael J. Wysocki <rafael.j.wysocki@intel.com>
Wed, 18 Jul 2018 11:38:37 +0000 (13:38 +0200)
committerKhalid Elmously <khalid.elmously@canonical.com>
Wed, 6 Feb 2019 04:53:01 +0000 (04:53 +0000)
commit4bca0a2353d127a3ef5839b22ab85330fd27f806
tree3d6a25e78e6103c558b0beabb77aa46f78e5a2ae
parent308205201384a39b0855a7533057ae898bea63dd
cpufreq: intel_pstate: Register when ACPI PCCH is present

BugLink: http://bugs.launchpad.net/bugs/1812229
commit 95d6c0857e54b788982746071130d822a795026b upstream.

Currently, intel_pstate doesn't register if _PSS is not present on
HP Proliant systems, because it expects the firmware to take over
CPU performance scaling in that case.  However, if ACPI PCCH is
present, the firmware expects the kernel to use it for CPU
performance scaling and the pcc-cpufreq driver is loaded for that.

Unfortunately, the firmware interface used by that driver is not
scalable for fundamental reasons, so pcc-cpufreq is way suboptimal
on systems with more than just a few CPUs.  In fact, it is better to
avoid using it at all.

For this reason, modify intel_pstate to look for ACPI PCCH if _PSS
is not present and register if it is there.  Also prevent the
pcc-cpufreq driver from trying to initialize itself if intel_pstate
has been registered already.

Fixes: fbbcdc0744da (intel_pstate: skip the driver if ACPI has power mgmt option)
Reported-by: Andreas Herrmann <aherrmann@suse.com>
Reviewed-by: Andreas Herrmann <aherrmann@suse.com>
Acked-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Tested-by: Andreas Herrmann <aherrmann@suse.com>
Cc: 4.16+ <stable@vger.kernel.org> # 4.16+
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
drivers/cpufreq/intel_pstate.c
drivers/cpufreq/pcc-cpufreq.c