Hi Linus, Please pull from the tag git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \ pm-5.2-rc1 with top-most commit e07095c9bbcd296401bec8b6852d258d7c926969 Merge branches 'pm-devfreq' and 'pm-domains' on top of commit 37624b58542fb9f2d9a70e6ea006ef8a5f66c30b Linux 5.1-rc7 to receive power management updates for 5.2-rc1. These fix the (Intel-specific) Performance and Energy Bias Hint (EPB) handling and expose it to user space via sysfs, fix and clean up several cpufreq drivers, add support for two new chips to the qoriq cpufreq driver, fix, simplify and clean up the cpufreq core and the schedutil governor, add support for "CPU" domains to the generic power domains (genpd) framework and provide low-level PSCI firmware support for that feature, fix the exynos cpuidle driver and fix a couple of issues in the devfreq subsystem and clean it up. Specifics: - Fix the handling of Performance and Energy Bias Hint (EPB) on Intel processors and expose it to user space via sysfs to avoid having to access it through the generic MSR I/F (Rafael Wysocki). - Improve the handling of global turbo changes made by the platform firmware in the intel_pstate driver (Rafael Wysocki). - Convert some slow-path static_cpu_has() callers to boot_cpu_has() in cpufreq (Borislav Petkov). - Fix the frequency calculation loop in the armada-37xx cpufreq driver (Gregory CLEMENT). - Fix possible object reference leaks in multuple cpufreq drivers (Wen Yang). - Fix kerneldoc comment in the centrino cpufreq driver (dongjian). - Clean up the ACPI and maple cpufreq drivers (Viresh Kumar, Mohan Kumar). - Add support for lx2160a and ls1028a to the qoriq cpufreq driver (Vabhav Sharma, Yuantian Tang). - Fix kobject memory leak in the cpufreq core (Viresh Kumar). - Simplify the IOwait boosting in the schedutil cpufreq governor and rework the TSC cpufreq notifier on x86 (Rafael Wysocki). - Clean up the cpufreq core and statistics code (Yue Hu, Kyle Lin). - Improve the cpufreq documentation, add SPDX license tags to some PM documentation files and unify copyright notices in them (Rafael Wysocki). - Add support for "CPU" domains to the generic power domains (genpd) framework and provide low-level PSCI firmware support for that feature (Ulf Hansson). - Rearrange the PSCI firmware support code and add support for SYSTEM_RESET2 to it (Ulf Hansson, Sudeep Holla). - Improve genpd support for devices in multiple power domains (Ulf Hansson). - Unify target residency for the AFTR and coupled AFTR states in the exynos cpuidle driver (Marek Szyprowski). - Introduce new helper routine in the operating performance points (OPP) framework (Andrew-sh.Cheng). - Add support for passing on-die termination (ODT) and auto power down parameters from the kernel to Trusted Firmware-A (TF-A) to the rk3399_dmc devfreq driver (Enric Balletbo i Serra). - Add tracing to devfreq (Lukasz Luba). - Make the exynos-bus devfreq driver suspend all devices on system shutdown (Marek Szyprowski). - Fix a few minor issues in the devfreq subsystem and clean it up somewhat (Enric Balletbo i Serra, MyungJoo Ham, Rob Herring, Saravana Kannan, Yangtao Li). - Improve system wakeup diagnostics (Stephen Boyd). - Rework filesystem sync messages emitted during system suspend and hibernation (Harry Pan). Thanks! --------------- Andrew-sh.Cheng (1): OPP: Introduce dev_pm_opp_find_freq_ceil_by_volt() Borislav Petkov (1): drivers/cpufreq: Convert some slow-path static_cpu_has() callers to boot_cpu_has() Enric Balletbo i Serra (3): PM / devfreq: Fix static checker warning in try_then_request_governor PM / devfreq: rockchip-dfi: Move GRF definitions to a common place. PM / devfreq: rk3399_dmc: Pass ODT and auto power down parameters to TF-A. Gregory CLEMENT (1): cpufreq: armada-37xx: fix frequency calculation for opp Harry Pan (2): PM / sleep: Refactor filesystems sync to reduce duplication PM / sleep: Measure the time of filesystems syncing Kyle Lin (1): cpufreq: stats: Use lock by stat to replace global spin lock Lukasz Luba (2): trace: events: add devfreq trace event file PM / devfreq: add tracing for scheduling work Marek Szyprowski (2): cpuidle: exynos: Unify target residency for AFTR and coupled AFTR states PM / devfreq: exynos-bus: Suspend all devices on system shutdown Mohan Kumar (1): drivers/cpufreq/acpi-cpufreq.c: This fixes the following checkpatch warning MyungJoo Ham (1): PM / devfreq: consistent indentation Rafael J. Wysocki (11): cpufreq: intel_pstate: Driver-specific handling of _PPC updates cpufreq: Add cpufreq_cpu_acquire() and cpufreq_cpu_release() PM / arch: x86: Rework the MSR_IA32_ENERGY_PERF_BIAS handling PM / arch: x86: MSR_IA32_ENERGY_PERF_BIAS sysfs interface cpufreq: schedutil: Simplify iowait boosting cpufreq: intel_pstate: Update max frequency on global turbo changes cpufreq: intel_pstate: Documentation: Add references sections Documentation: PM: Add SPDX license tags to multiple files Documentation: PM: Unify copyright notices admin-guide: pm: intel_epb: Add SPDX license tag and copyright notice x86: tsc: Rework time_cpufreq_notifier() Rob Herring (1): PM / devfreq: Use of_node_name_eq for node name comparisons Saravana Kannan (1): PM / devfreq: Restart previous governor if new governor fails to start Stephen Boyd (1): PM / wakeup: Use pm_pr_dbg() instead of pr_debug() Sudeep Holla (1): firmware/psci: add support for SYSTEM_RESET2 Ulf Hansson (17): PM / Domains: Add generic data pointer to struct genpd_power_state PM / Domains: Add support for CPU devices to genpd cpuidle: Export the next timer expiration for CPUs PM / Domains: Add genpd governor for CPUs drivers: firmware: psci: Move psci to separate directory MAINTAINERS: Update files for PSCI drivers: firmware: psci: Split psci_dt_cpu_init_idle() drivers: firmware: psci: Simplify error path of psci_dt_init() drivers: firmware: psci: Announce support for OS initiated suspend mode PM / core: Propagate dev->power.wakeup_path when no callbacks PM / Domains: Don't kfree() the virtual device in the error path PM / Domains: Allow OF lookup for multi PM domain case from ->attach_dev() PM / Domains: Enable genpd_dev_pm_attach_by_id|name() for single PM domain PM / Domains: Use the base device for driver_deferred_probe_check_state() PM / Domains: Drop unused in-parameter to some genpd functions PM / Domains: Search for the CPU device outside the genpd lock PM / Domains: Allow to attach a CPU via genpd_dev_pm_attach_by_id|name() Vabhav Sharma (1): cpufreq: qoriq: add support for lx2160a Viresh Kumar (2): cpufreq: maple: Remove redundant code from maple_cpufreq_init() cpufreq: Fix kobject memleak Wen Yang (7): cpufreq: ap806: fix possible object reference leak cpufreq: imx6q: fix possible object reference leak cpufreq: kirkwood: fix possible object reference leak cpufreq: maple: fix possible object reference leak cpufreq/pasemi: fix possible object reference leak cpufreq: pmac32: fix possible object reference leak cpufreq: ppc_cbe: fix possible object reference leak Yangtao Li (9): PM / core: fix kerneldoc comment for dpm_watchdog_handler() PM / core: fix kerneldoc comment for device_pm_wait_for_dev() PM / core: Introduce dpm_async_fn() helper PM / devfreq: fix mem leak in devfreq_add_device() PM / devfreq: fix missing check of return value in devfreq_add_device() PM / devfreq: rk3399_dmc: remove unneeded semicolon PM / devfreq: rockchip-dfi: remove unneeded semicolon PM / devfreq: tegra: remove unneeded variable PM / Domains: remove unnecessary unlikely() Yuantian Tang (1): cpufreq: qoriq: Add ls1028a chip support Yue Hu (4): cpufreq: Remove cpufreq_driver check in cpufreq_boost_supported() cpufreq: boost: Remove CONFIG_CPU_FREQ_BOOST_SW Kconfig option cpufreq: Remove needless bios_limit check in show_bios_limit() cpufreq: Move ->get callback check outside of __cpufreq_get() dongjian (1): cpufreq: centrino: Fix centrino_setpolicy() kerneldoc comment --------------- Documentation/ABI/testing/sysfs-devices-system-cpu | 18 ++ Documentation/admin-guide/pm/cpufreq.rst | 18 +- Documentation/admin-guide/pm/cpuidle.rst | 8 +- Documentation/admin-guide/pm/index.rst | 2 + Documentation/admin-guide/pm/intel_epb.rst | 41 ++++ Documentation/admin-guide/pm/intel_pstate.rst | 32 +-- Documentation/admin-guide/pm/sleep-states.rst | 8 +- Documentation/admin-guide/pm/strategies.rst | 8 +- Documentation/admin-guide/pm/system-wide.rst | 2 + Documentation/admin-guide/pm/working-state.rst | 3 + Documentation/driver-api/pm/cpuidle.rst | 7 +- Documentation/driver-api/pm/devices.rst | 12 +- Documentation/driver-api/pm/index.rst | 2 + Documentation/driver-api/pm/notifiers.rst | 8 +- Documentation/driver-api/pm/types.rst | 2 + MAINTAINERS | 3 +- arch/x86/kernel/cpu/Makefile | 2 +- arch/x86/kernel/cpu/common.c | 17 -- arch/x86/kernel/cpu/cpu.h | 1 - arch/x86/kernel/cpu/intel.c | 34 ---- arch/x86/kernel/cpu/intel_epb.c | 216 +++++++++++++++++++++ arch/x86/kernel/tsc.c | 29 ++- drivers/acpi/processor_perflib.c | 2 +- drivers/base/power/domain.c | 118 ++++++++--- drivers/base/power/domain_governor.c | 67 ++++++- drivers/base/power/main.c | 70 +++---- drivers/base/power/wakeup.c | 6 +- drivers/cpufreq/Kconfig | 4 - drivers/cpufreq/acpi-cpufreq.c | 19 +- drivers/cpufreq/amd_freq_sensitivity.c | 2 +- drivers/cpufreq/armada-37xx-cpufreq.c | 22 ++- drivers/cpufreq/armada-8k-cpufreq.c | 1 + drivers/cpufreq/cpufreq.c | 100 +++++++--- drivers/cpufreq/cpufreq_governor.c | 2 + drivers/cpufreq/cpufreq_stats.c | 15 +- drivers/cpufreq/freq_table.c | 3 - drivers/cpufreq/imx6q-cpufreq.c | 4 +- drivers/cpufreq/intel_pstate.c | 65 ++++++- drivers/cpufreq/kirkwood-cpufreq.c | 19 +- drivers/cpufreq/maple-cpufreq.c | 6 +- drivers/cpufreq/pasemi-cpufreq.c | 1 + drivers/cpufreq/pmac32-cpufreq.c | 2 + drivers/cpufreq/powernow-k8.c | 2 +- drivers/cpufreq/ppc_cbe_cpufreq.c | 1 + drivers/cpufreq/qoriq-cpufreq.c | 2 + drivers/cpufreq/speedstep-centrino.c | 2 +- drivers/cpuidle/cpuidle-exynos.c | 2 +- drivers/cpuidle/cpuidle.c | 19 +- drivers/devfreq/devfreq-event.c | 2 +- drivers/devfreq/devfreq.c | 90 ++++++--- drivers/devfreq/event/exynos-ppmu.c | 2 +- drivers/devfreq/event/rockchip-dfi.c | 25 +-- drivers/devfreq/exynos-bus.c | 8 + drivers/devfreq/rk3399_dmc.c | 73 ++++++- drivers/devfreq/tegra-devfreq.c | 7 +- drivers/firmware/Kconfig | 15 +- drivers/firmware/Makefile | 3 +- drivers/firmware/psci/Kconfig | 13 ++ drivers/firmware/psci/Makefile | 4 + drivers/firmware/{ => psci}/psci.c | 110 +++++++---- drivers/firmware/{ => psci}/psci_checker.c | 0 drivers/opp/core.c | 54 ++++++ include/linux/cpufreq.h | 14 ++ include/linux/cpuhotplug.h | 1 + include/linux/cpuidle.h | 1 + include/linux/pm_domain.h | 22 ++- include/linux/pm_opp.h | 8 + include/linux/suspend.h | 3 + include/linux/tick.h | 7 +- include/soc/rockchip/rk3399_grf.h | 21 ++ include/soc/rockchip/rockchip_sip.h | 1 + include/trace/events/devfreq.h | 40 ++++ include/uapi/linux/psci.h | 7 + kernel/power/hibernate.c | 5 +- kernel/power/main.c | 14 ++ kernel/power/suspend.c | 13 +- kernel/power/user.c | 5 +- kernel/sched/cpufreq_schedutil.c | 21 +- kernel/time/tick-sched.c | 12 ++ 79 files changed, 1240 insertions(+), 390 deletions(-)