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(-)