Hi Linus, Please pull from the tag git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \ pm-4.20-rc1 with top-most commit cc19b05e3883efbbfd525747a86d0567b12c4d12 Merge branches 'pm-devfreq' and 'pm-tools' on top of commit 35a7f35ad1b150ddf59a41dcac7b2fa32982be0e Linux 4.19-rc8 to receive power management updates for 4.20-rc1. These make hibernation on 32-bit x86 systems work in all of the cases in which it works on 64-bit x86 ones, update the menu cpuidle governor and the "polling" state to make them more efficient, add more hardware support to cpufreq drivers and fix issues with some of them, fix a bug in the conservative cpufreq governor, fix the operating performance points (OPP) framework and make it more stable, update the devfreq subsystem to take changes in the APIs used by into account and clean up some things all over. Specifics: - Backport hibernation bug fixes from x86-64 to x86-32 and consolidate hibernation handling on x86 to allow 32-bit systems to work in all of the cases in which 64-bit ones work (Zhimin Gu, Chen Yu). - Fix hibernation documentation (Vladimir D. Seleznev). - Update the menu cpuidle governor to fix a couple of issues with it, make it more efficient in some cases and clean it up (Rafael Wysocki). - Rework the cpuidle polling state implementation to make it more efficient (Rafael Wysocki). - Clean up the cpuidle core somewhat (Fieah Lim). - Fix the cpufreq conservative governor to take policy limits into account properly in some cases (Rafael Wysocki). - Add support for retrieving guaranteed performance information to the ACPI CPPC library and make the intel_pstate driver use it to expose the CPU base frequency via sysfs on systems with the hardware-managed P-states (HWP) feature enabled (Srinivas Pandruvada). - Fix clang warning in the CPPC cpufreq driver (Nathan Chancellor). - Get rid of device_node.name printing from cpufreq (Rob Herring). - Remove unnecessary unlikely() from the cpufreq core (Igor Stoppa). - Add support for the r8a7744 SoC to the cpufreq-dt driver (Biju Das). - Update the dt-platdev cpufreq driver to allow RK3399 to have separate tunables per cluster (Dmitry Torokhov). - Fix the dma_alloc_coherent() usage in the tegra186 cpufreq driver (Christoph Hellwig). - Make the imx6q cpufreq driver read OCOTP through nvmem for imx6ul/imx6ull (Anson Huang). - Fix several bugs in the operating performance points (OPP) framework and make it more stable (Viresh Kumar, Dave Gerlach). - Update the devfreq subsystem to take changes in the APIs used by into account, fix some issues with it and make it stop print device_node.name directly (Bjorn Andersson, Enric Balletbo i Serra, Matthias Kaehlcke, Rob Herring, Vincent Donnefort, zhong jiang). - Prepare the generic power domains (genpd) framework for dealing with domains containing CPUs (Ulf Hansson). - Prevent sysfs attributes representing low-power S0 residency counters from being exposed if low-power S0 support is not indicated in ACPI FADT (Rajneesh Bhardwaj). - Get rid of custom CPU features macros for Intel CPUs from the intel_idle and RAPL drivers (Andy Shevchenko). - Update the tasks freezer to list tasks that refused to freeze and caused a system transition to a sleep state to be aborted (Todd Brandt). - Update the pm-graph set of tools to v5.2 (Todd Brandt). - Fix some issues in the cpupower utility (Anders Roxell, Prarit Bhargava). Thanks! --------------- Anders Roxell (1): cpupower: remove stringop-truncation waring Andy Shevchenko (2): intel_idle: Get rid of custom ICPU() macro powercap: RAPL: Get rid of custom RAPL_CPU() macro Anson Huang (1): cpufreq: imx6q: read OCOTP through nvmem for imx6ul/imx6ull Biju Das (1): cpufreq: dt: Add support for r8a7744 Bjorn Andersson (1): PM / devfreq: Drop custom MIN/MAX macros Chen Yu (1): PM / hibernate: Check the success of generating md5 digest before hibernation Christoph Hellwig (1): cpufreq: tegra186: don't pass GFP_DMA32 to dma_alloc_coherent() Dave Gerlach (1): PM / OPP: _of_add_opp_table_v2(): increment count only if OPP is added Dmitry Torokhov (1): cpufreq: dt-platdev: allow RK3399 to have separate tunables per cluster Enric Balletbo i Serra (1): PM / devfreq: Fix devfreq_add_device() when drivers are built as modules. Fieah Lim (2): cpuidle: Remove unnecessary wrapper cpuidle_get_last_residency() cpuidle: enter_state: Don't needlessly calculate diff time Igor Stoppa (1): cpufreq: remove unnecessary unlikely() Matthias Kaehlcke (3): PM / devfreq: Fix handling of min/max_freq == 0 PM / devfreq: Don't adjust to user limits in governors PM / devfreq: Make update_devfreq() public Nathan Chancellor (1): cpufreq / CPPC: Mark acpi_ids as used Prarit Bhargava (2): cpupower: Fix AMD Family 0x17 msr_pstate size cpupower: Fix coredump on VMWare Rafael J. Wysocki (12): cpuidle: menu: Replace data->predicted_us with local variable cpuidle: menu: Fix wakeup statistics updates for polling state cpuidle: menu: Compute first_idx when latency_req is known cpuidle: menu: Get rid of first_idx from menu_select() cpuidle: menu: Do not update last_state_idx in menu_select() cpuidle: menu: Avoid computations for very close timers cpuidle: menu: Move the latency_req == 0 special case check cpuidle: poll_state: Revise loop termination condition cpuidle: menu: Simplify checks related to the polling state cpufreq: conservative: Take limits changes into account properly cpuidle: menu: Drop redundant comparison cpuidle: menu: Avoid computations when result will be discarded Rajneesh Bhardwaj (1): ACPI / PM: LPIT: Register sysfs attributes based on FADT Rob Herring (2): cpufreq: Convert to using %pOFn instead of device_node.name PM / devfreq: Convert to using %pOFn instead of device_node.name Srinivas Pandruvada (3): ACPI / CPPC: Add support for guaranteed performance cpufreq: intel_pstate: Add base_frequency attribute Documentation: intel_pstate: Add base_frequency information Todd Brandt (3): PM / sleep: Show freezing tasks that caused a suspend abort PM / tools: sleepgraph: first batch of v5.2 changes PM / tools: sleepgraph and bootgraph: upgrade to v5.2 Ulf Hansson (3): PM / Domains: Don't treat zero found compatible idle states as an error PM / Domains: Deal with multiple states but no governor in genpd PM / Domains: Document flags for genpd Vincent Donnefort (1): PM / devfreq: stopping the governor before device_unregister() Viresh Kumar (15): OPP: Free OPP table properly on performance state irregularities OPP: Don't try to remove all OPP tables on failure OPP: Protect dev_list with opp_table lock OPP: Pass index to _of_init_opp_table() OPP: Parse OPP table's DT properties from _of_init_opp_table() OPP: Don't take OPP table's kref for static OPPs OPP: Create separate kref for static OPPs list cpufreq: mvebu: Remove OPPs using dev_pm_opp_remove() OPP: Don't remove dynamic OPPs from _dev_pm_opp_remove_table() OPP: Use a single mechanism to free the OPP table OPP: Prevent creating multiple OPP tables for devices sharing OPP nodes OPP: Pass OPP table to _of_add_opp_table_v{1|2}() OPP: Improve error handling in dev_pm_opp_of_cpumask_add_table() OPP: Return error on error from dev_pm_opp_get_opp_count() cpufreq: dt: Try freeing static OPPs only if we have added them Vladimir D. Seleznev (1): PM / hibernate: Documentation: fix image_size default value Zhimin Gu (11): x86, hibernate: Fix nosave_regions setup for hibernation x86-32/asm/power: Create stack frames in hibernate_asm_32.S x86, hibernate: Extract the common code of 64/32 bit system x86-32, hibernate: Enable CONFIG_ARCH_HIBERNATION_HEADER on 32bit system x86, hibernate: Rename temp_level4_pgt to temp_pgt x86-32, hibernate: Use temp_pgt as the temporary page table x86-32, hibernate: Use the page size macro instead of constant value x86-32, hibernate: Switch to original page table after resumed x86-32, hibernate: Switch to relocated restore code during resume on 32bit system x86-32, hibernate: Set up temporary text mapping for 32bit system x86-32, hibernate: Adjust in_suspend after resumed on 32bit system zhong jiang (1): PM / devfreq: remove redundant null pointer check before kfree --------------- Documentation/ABI/testing/sysfs-power | 2 +- Documentation/admin-guide/pm/intel_pstate.rst | 7 + Documentation/power/swsusp.txt | 2 +- arch/x86/Kconfig | 2 +- arch/x86/include/asm/suspend.h | 8 + arch/x86/include/asm/suspend_32.h | 4 + arch/x86/kernel/setup.c | 2 +- arch/x86/power/Makefile | 2 +- arch/x86/power/hibernate.c | 248 +++ arch/x86/power/hibernate_32.c | 52 +- arch/x86/power/hibernate_64.c | 224 +-- arch/x86/power/hibernate_asm_32.S | 37 +- arch/x86/power/hibernate_asm_64.S | 2 +- drivers/acpi/acpi_lpit.c | 6 + drivers/acpi/cppc_acpi.c | 8 +- drivers/base/power/domain.c | 20 +- drivers/cpufreq/cppc_cpufreq.c | 2 +- drivers/cpufreq/cpufreq-dt-platdev.c | 6 +- drivers/cpufreq/cpufreq-dt.c | 34 +- drivers/cpufreq/cpufreq.c | 2 +- drivers/cpufreq/cpufreq_conservative.c | 6 +- drivers/cpufreq/imx6q-cpufreq.c | 52 +- drivers/cpufreq/intel_pstate.c | 38 + drivers/cpufreq/mvebu-cpufreq.c | 9 +- drivers/cpufreq/s5pv210-cpufreq.c | 4 +- drivers/cpufreq/tegra186-cpufreq.c | 2 +- drivers/cpuidle/cpuidle.c | 16 +- drivers/cpuidle/governors/ladder.c | 2 +- drivers/cpuidle/governors/menu.c | 114 +- drivers/cpuidle/poll_state.c | 8 +- drivers/devfreq/devfreq.c | 118 +- drivers/devfreq/event/exynos-ppmu.c | 4 +- drivers/devfreq/governor.h | 6 +- drivers/devfreq/governor_performance.c | 5 +- drivers/devfreq/governor_powersave.c | 2 +- drivers/devfreq/governor_simpleondemand.c | 12 +- drivers/devfreq/governor_userspace.c | 16 +- drivers/idle/intel_idle.c | 75 +- drivers/opp/core.c | 149 +- drivers/opp/cpu.c | 15 +- drivers/opp/of.c | 237 +-- drivers/opp/opp.h | 19 +- drivers/powercap/intel_rapl.c | 73 +- include/acpi/cppc_acpi.h | 1 + include/linux/cpuidle.h | 11 +- include/linux/devfreq.h | 8 + include/linux/pm_domain.h | 35 +- include/linux/pm_opp.h | 6 + kernel/power/process.c | 2 +- tools/power/cpupower/bench/parse.c | 2 +- tools/power/cpupower/utils/cpufreq-info.c | 2 + tools/power/cpupower/utils/helpers/amd.c | 7 +- tools/power/pm-graph/Makefile | 4 +- tools/power/pm-graph/bootgraph.py | 125 +- tools/power/pm-graph/config/cgskip.txt | 1 + .../pm-graph/config/custom-timeline-functions.cfg | 4 +- tools/power/pm-graph/sleepgraph.8 | 13 +- tools/power/pm-graph/sleepgraph.py | 1836 +++++++++++--------- 58 files changed, 2123 insertions(+), 1586 deletions(-)