Rafael J. Wysocki
95d6c0857e
cpufreq: intel_pstate: Register when ACPI PCCH is present
...
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: fbbcdc0744 (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>
2018-07-18 13:38:37 +02:00
..
acpi-cpufreq.c
Additional power management updates for 4.18-rc1
2018-06-13 07:24:18 -07:00
amd_freq_sensitivity.c
cpufreq: AMD: Ignore the check for ProcFeedback in ST/CZ
2018-02-07 11:26:37 +01:00
arm_big_little.c
treewide: kzalloc() -> kcalloc()
2018-06-12 16:19:22 -07:00
arm_big_little.h
cpufreq: arm_big_little: make function arguments and structure pointer const
2017-11-08 23:22:19 +01:00
arm_big_little_dt.c
cpufreq: arm_big_little: make cpufreq_arm_bL_ops structures const
2017-11-08 23:22:20 +01:00
armada-37xx-cpufreq.c
cpufreq: add suspend/resume support in Armada 37xx DVFS driver
2018-05-10 11:43:59 +02:00
bmips-cpufreq.c
treewide: kmalloc() -> kmalloc_array()
2018-06-12 16:19:22 -07:00
brcmstb-avs-cpufreq.c
treewide: devm_kzalloc() -> devm_kcalloc()
2018-06-12 16:19:22 -07:00
cppc_cpufreq.c
treewide: kzalloc() -> kcalloc()
2018-06-12 16:19:22 -07:00
cpufreq-dt-platdev.c
cpufreq: Add Kryo CPU scaling driver
2018-05-30 12:53:11 +02:00
cpufreq-dt.c
cpufreq: dt: Allow platform specific suspend/resume callbacks
2018-05-10 11:43:59 +02:00
cpufreq-dt.h
cpufreq: dt: Allow platform specific suspend/resume callbacks
2018-05-10 11:43:59 +02:00
cpufreq-nforce2.c
cpufreq.c
cpufreq: Use static SRCU initializer
2018-05-30 11:16:59 +02:00
cpufreq_conservative.c
cpufreq_governor.c
cpufreq: governors: Fix long idle detection logic in load calculation
2018-06-08 11:40:44 +02:00
cpufreq_governor.h
cpufreq_governor_attr_set.c
cpufreq_ondemand.c
cpufreq_ondemand.h
cpufreq_performance.c
cpufreq_powersave.c
cpufreq_stats.c
cpufreq: stats: Change return type of cpufreq_stats_update() as void
2018-01-05 13:22:46 +01:00
cpufreq_userspace.c
davinci-cpufreq.c
e_powersaver.c
cpufreq: e_powersaver: Don't validate the frequency table twice
2018-03-20 12:07:52 +01:00
elanfreq.c
cpufreq: elanfreq: Don't validate the frequency table twice
2018-03-20 12:07:52 +01:00
exynos5440-cpufreq.c
cpufreq: Add and use cpufreq_for_each_{valid_,}entry_idx()
2018-02-08 10:21:39 +01:00
freq_table.c
cpufreq: Drop cpufreq_table_validate_and_show()
2018-04-10 08:40:45 +02:00
gx-suspmod.c
highbank-cpufreq.c
ia64-acpi-cpufreq.c
treewide: kzalloc() -> kcalloc()
2018-06-12 16:19:22 -07:00
imx6q-cpufreq.c
Additional power management updates for 4.18-rc1
2018-06-13 07:24:18 -07:00
intel_pstate.c
cpufreq: intel_pstate: Register when ACPI PCCH is present
2018-07-18 13:38:37 +02:00
Kconfig
cpufreq: remove at32ap-cpufreq
2018-02-07 11:44:23 +01:00
Kconfig.arm
cpufreq: kryo: allow building as a loadable module
2018-06-06 08:29:29 +02:00
Kconfig.powerpc
Kconfig.x86
kirkwood-cpufreq.c
longhaul.c
treewide: kzalloc() -> kcalloc()
2018-06-12 16:19:22 -07:00
longhaul.h
longrun.c
loongson1-cpufreq.c
loongson2_cpufreq.c
Makefile
cpufreq: Add Kryo CPU scaling driver
2018-05-30 12:53:11 +02:00
maple-cpufreq.c
mediatek-cpufreq.c
cpufreq: mediatek: Don't validate the frequency table twice
2018-03-20 12:07:52 +01:00
mvebu-cpufreq.c
cpufreq: mvebu: Free opp if registering failed
2017-12-16 02:29:43 +01:00
omap-cpufreq.c
p4-clockmod.c
cpufreq: p4-clockmod: Don't validate the frequency table twice
2018-03-20 12:07:52 +01:00
pasemi-cpufreq.c
cpufreq: Add and use cpufreq_for_each_{valid_,}entry_idx()
2018-02-08 10:21:39 +01:00
pcc-cpufreq.c
cpufreq: intel_pstate: Register when ACPI PCCH is present
2018-07-18 13:38:37 +02:00
pmac32-cpufreq.c
pmac64-cpufreq.c
powernow-k6.c
cpufreq: powernow: Don't validate the frequency table twice
2018-03-20 12:07:52 +01:00
powernow-k7.c
cpufreq: powernow: Don't validate the frequency table twice
2018-03-20 12:07:52 +01:00
powernow-k7.h
powernow-k8.c
cpufreq: powernow: Don't validate the frequency table twice
2018-03-20 12:07:52 +01:00
powernow-k8.h
powernv-cpufreq.c
cpufreq: powernv: Fix hardlockup due to synchronous smp_call in timer interrupt
2018-04-27 16:16:10 +10:00
ppc_cbe_cpufreq.c
cpufreq: ppc_cbe: Don't validate the frequency table twice
2018-03-20 12:07:52 +01:00
ppc_cbe_cpufreq.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
ppc_cbe_cpufreq_pervasive.c
ppc_cbe_cpufreq_pmi.c
pxa2xx-cpufreq.c
cpufreq: pxa: Don't validate the frequency table twice
2018-03-20 12:07:52 +01:00
pxa3xx-cpufreq.c
treewide: kzalloc() -> kcalloc()
2018-06-12 16:19:22 -07:00
qcom-cpufreq-kryo.c
cpufreq: qcom-kryo: Fix error handling in probe()
2018-06-24 23:00:36 +02:00
qoriq-cpufreq.c
cpufreq: qoirq: Don't validate the frequency table twice
2018-03-20 12:07:52 +01:00
s3c24xx-cpufreq-debugfs.c
s3c24xx-cpufreq.c
treewide: kzalloc() -> kcalloc()
2018-06-12 16:19:22 -07:00
s3c64xx-cpufreq.c
s3c2410-cpufreq.c
s3c2412-cpufreq.c
s3c2416-cpufreq.c
s3c2440-cpufreq.c
cpufreq: s3c2440: fix spelling mistake: "divsiors" -> "divisors"
2018-05-10 11:50:42 +02:00
s5pv210-cpufreq.c
sa1100-cpufreq.c
sa1110-cpufreq.c
sc520_freq.c
cpufreq: sc520: Don't validate the frequency table twice
2018-03-20 12:07:52 +01:00
scmi-cpufreq.c
firmware: arm_scmi: rename get_transition_latency and add_opps_to_device
2018-05-10 10:49:40 +01:00
scpi-cpufreq.c
cpufreq: scpi: Don't validate the frequency table twice
2018-03-20 12:07:52 +01:00
sfi-cpufreq.c
treewide: kzalloc() -> kcalloc()
2018-06-12 16:19:22 -07:00
sh-cpufreq.c
cpufreq: sh: Don't validate the frequency table twice
2018-03-20 12:07:52 +01:00
sparc-us2e-cpufreq.c
cpufreq: sparc: Don't validate the frequency table twice
2018-03-20 12:07:52 +01:00
sparc-us3-cpufreq.c
cpufreq: sparc: Don't validate the frequency table twice
2018-03-20 12:07:52 +01:00
spear-cpufreq.c
treewide: kzalloc() -> kcalloc()
2018-06-12 16:19:22 -07:00
speedstep-centrino.c
cpufreq: speedstep: Don't validate the frequency table twice
2018-03-20 12:07:52 +01:00
speedstep-ich.c
cpufreq: speedstep: Don't validate the frequency table twice
2018-03-20 12:07:52 +01:00
speedstep-lib.c
cpufreq: speedstep: fix speedstep_detect_processor()'s return type
2018-05-10 11:46:00 +02:00
speedstep-lib.h
speedstep-smi.c
cpufreq: speedstep: Don't validate the frequency table twice
2018-03-20 12:07:52 +01:00
sti-cpufreq.c
tango-cpufreq.c
tegra20-cpufreq.c
cpufreq: tegra20: Wrap cpufreq into platform driver
2018-05-21 13:44:24 +02:00
tegra124-cpufreq.c
tegra186-cpufreq.c
cpufreq: tegra186: Don't validate the frequency table twice
2018-03-20 12:07:53 +01:00
ti-cpufreq.c
cpufreq: ti-cpufreq: Use devres managed API in probe()
2018-06-06 08:34:31 +02:00
unicore2-cpufreq.c
vexpress-spc-cpufreq.c
cpufreq: arm_big_little: make cpufreq_arm_bL_ops structures const
2017-11-08 23:22:20 +01:00