[GIT PULL] Power management fixes for v5.4-rc5

From: Rafael J. Wysocki
Date: Thu Oct 24 2019 - 13:29:13 EST


Hi Linus,

Please pull from the tag

git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-5.4-rc5

with top-most commit 767d2d710e9066c47919a4e5f05a21e1ad40ddc4

Merge branches 'pm-cpuidle' and 'pm-opp'

on top of commit 7d194c2100ad2a6dded545887d02754948ca5241

Linux 5.4-rc4

to receive power management fixes for 5.4-rc5.

These fix problems related to frequency limits management in
cpufreq that were introduced during the 5.3 cycle (when PM QoS
had started to be used for that), fix a few issues in the OPP
(operating performance points) library code and fix up the
recently added haltpoll cpuidle driver.

The cpufreq changes are somewhat bigger that I would like them
to be at this stage of the cycle, but the problems fixed by them
include crashes on boot and shutdown in some cases (among other
things) and in my view it is better to address the root of the
issue right away.

Specifics:

- Using device PM QoS of CPU devices for managing frequency limits
in cpufreq does not work, so introduce frequency QoS (based on the
original low-level PM QoS) for this purpose, switch cpufreq and
related code over to using it and fix a race involving deferred
updates of frequency limits on top of that (Rafael Wysocki, Sudeep
Holla).

- Avoid calling regulator_enable()/disable() from the OPP framework
to avoid side-effects on boot-enabled regulators that may change their
initial voltage due to performing initial voltage balancing without
all restrictions from the consumers (Marek Szyprowski).

- Avoid a kref management issue in the OPP library code and drop an
incorrectly added lockdep_assert_held() from it (Viresh Kumar).

- Make the recently added haltpoll cpuidle driver take the 'idle='
override into account as appropriate (Zhenzhong Duan).

Thanks!


---------------

Marek Szyprowski (1):
opp: core: Revert "add regulators enable and disable"

Rafael J. Wysocki (3):
PM: QoS: Introduce frequency QoS
cpufreq: Use per-policy frequency QoS
PM: QoS: Drop frequency QoS types from device PM QoS

Sudeep Holla (1):
cpufreq: Cancel policy update work scheduled before freeing

Viresh Kumar (2):
opp: of: drop incorrect lockdep_assert_held()
opp: Reinitialize the list_kref before adding the static OPPs again

Zhenzhong Duan (1):
cpuidle: haltpoll: Take 'idle=' override into account

---------------

drivers/acpi/processor_driver.c | 9 +-
drivers/acpi/processor_perflib.c | 18 +--
drivers/acpi/processor_thermal.c | 18 +--
drivers/base/power/qos.c | 70 +--------
drivers/cpufreq/cpufreq.c | 62 ++++----
drivers/cpufreq/intel_pstate.c | 30 ++--
drivers/cpufreq/ppc_cbe_cpufreq_pmi.c | 15 +-
drivers/cpuidle/cpuidle-haltpoll.c | 4 +
drivers/macintosh/windfarm_cpufreq_clamp.c | 38 +++--
drivers/opp/core.c | 16 +-
drivers/opp/of.c | 9 +-
drivers/thermal/cpu_cooling.c | 14 +-
include/acpi/processor.h | 20 +--
include/linux/cpufreq.h | 7 +-
include/linux/pm_qos.h | 56 +++++--
kernel/power/qos.c | 240 +++++++++++++++++++++++++++++
16 files changed, 417 insertions(+), 209 deletions(-)