[GIT PULL] Power management updates for v4.17-rc1

From: Rafael J. Wysocki
Date: Mon Apr 02 2018 - 07:11:55 EST


Hi Linus,

Please pull from the tag

git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \
pm-4.17-rc1

with top-most commit 103cf0e5799ce024fd28dfab716d7111afe4b117

Merge branches 'pm-cpuidle' and 'pm-tools'

on top of commit 0c8efd610b58cb23cefdfa12015799079aef94ae

Linux 4.16-rc5

to receive power management updates for 4.17-rc1.

These update the cpuidle poll state definition to redice excessive
energy usage related to it, add new CPU ID to the RAPL power capping
driver, update the ACPI system suspend code to handle some special
cases better, extend the PM core's device links code slightly, add
new sysfs attribute for better suspend-to-idle diagnostics and easier
hibernation handling, update power management tools and clean up
cpufreq quite a bit.

Specifics:

- Modify the cpuidle poll state implementation to prevent CPUs from
staying in the loop in there for excessive times (Rafael Wysocki).

- Add Intel Cannon Lake chips support to the RAPL power capping
driver (Joe Konno).

- Add reference counting to the device links handling code in the
PM core (Lukas Wunner).

- Avoid reconfiguring GPEs on suspend-to-idle in the ACPI system
suspend code (Rafael Wysocki).

- Allow devices to be put into deeper low-power states via ACPI
if both _SxD and _SxW are missing (Daniel Drake).

- Reorganize the core ACPI suspend-to-idle wakeup code to avoid a
keyboard wakeup issue on Asus UX331UA (Chris Chiu).

- Prevent the PCMCIA library code from aborting suspend-to-idle due
to noirq suspend failures resulting from incorrect assumptions
(Rafael Wysocki).

- Add coupled cpuidle supprt to the Exynos3250 platform (Marek
Szyprowski).

- Add new sysfs file to make it easier to specify the image storage
location during hibernation (Mario Limonciello).

- Add sysfs files for collecting suspend-to-idle usage and time
statistics for CPU idle states (Rafael Wysocki).

- Update the pm-graph utilities (Todd Brandt).

- Reduce the kernel log noise related to reporting Low-power Idle
constraings by the ACPI system suspend code (Rafael Wysocki).

- Make it easier to distinguish dedicated wakeup IRQs in the
/proc/interrupts output (Tony Lindgren).

- Add the frequency table validation in cpufreq to the core and
drop it from a number of cpufreq drivers (Viresh Kumar).

- Drop "cooling-{min|max}-level" for CPU nodes from a couple of
DT bindings (Viresh Kumar).

- Clean up the CPU online error code path in the cpufreq core
(Viresh Kumar).

- Fix assorted issues in the SCPI, CPPC, mediatek and tegra186
cpufreq drivers (Arnd Bergmann, Chunyu Hu, George Cherian,
Viresh Kumar).

- Drop memory allocation error messages from a few places in
cpufreq and cpuildle drivers (Markus Elfring).

Thanks!

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

Arnd Bergmann (1):
cpufreq: scpi: Add thermal dependency

Chris Chiu (1):
ACPI / PM: Fix keyboard wakeup from suspend-to-idle on ASUS UX331UA

Chunyu Hu (1):
cpufreq: cppc_cpufreq: Fix cppc_cpufreq_init() failure path

Daniel Drake (1):
ACPI / PM: Allow deeper wakeup power states with no _SxD nor _SxW

George Cherian (1):
cpufreq: CPPC: Use transition_delay_us depending transition_latency

Joe Konno (1):
powercap: RAPL: Add support for Cannon Lake

Lukas Wunner (1):
driver core: Introduce device links reference counting

Marek Szyprowski (1):
cpuidle: Enable coupled cpuidle support on Exynos3250 platform

Mario Limonciello (2):
PM / hibernate: Make passing hibernate offsets more friendly
PM / hibernate: Change message when writing to /sys/power/resume

Markus Elfring (5):
cpufreq: s3c24xx: Drop memory allocation error messages from two functions
cpufreq: qoriq: Drop memory allocation error messages from
qoriq_cpufreq_cpu_init()
cpufreq: powernow-k8: Drop memory allocation error messages from
three functions
cpufreq: powernow-k8: Drop unnecessary return statements from
two functions
ARM: cpuidle: Drop memory allocation error message from
arm_idle_init_cpu()

Rafael J. Wysocki (6):
ACPI / PM: Do not reconfigure GPEs for suspend-to-idle
PCMCIA / PM: Avoid noirq suspend aborts during suspend-to-idle
ACPI / PM: Reduce LPI constraints logging noise
cpuidle: poll_state: Add time limit to poll_idle()
PM: cpuidle/suspend: Add s2idle usage and time state attributes
cpuidle: poll_state: Avoid invoking local_clock() too often

Todd E Brandt (3):
pm-graph: config files and installer
pm-graph: AnalyzeBoot v2.2
pm-graph: AnalyzeSuspend v5.0

Tony Lindgren (1):
PM / wakeirq: Add wakeup name to dedicated wake irqs

Viresh Kumar (31):
ARM: dts: mt7623: Remove "cooling-{min|max}-level" for CPU nodes
dt-bindings: cpufreq-dt: Remove "cooling-{min|max}-level" properties
cpufreq: mediatek: Convert pr_warn() to pr_debug()
cpufreq: Reorder cpufreq_online() error code path
cpufreq: Validate frequency table in the core
cpufreq: tegra186: Break after initialization is done for policy->cpu
cpufreq: powernv: Don't validate the frequency table twice
cpufreq: imx6q: Find max freq from frequency table itself
cpufreq: Don't validate cpufreq table from cpufreq_generic_init()
cpufreq: ACPI: Don't validate the frequency table twice
cpufreq: arm_big_little: Don't validate the frequency table twice
cpufreq: brcmstb: Don't validate the frequency table twice
cpufreq: cpufreq-dt: Don't validate the frequency table twice
cpufreq: e_powersaver: Don't validate the frequency table twice
cpufreq: elanfreq: Don't validate the frequency table twice
cpufreq: ia64-acpi: Don't validate the frequency table twice
cpufreq: longhaul: Don't validate the frequency table twice
cpufreq: mediatek: Don't validate the frequency table twice
cpufreq: p4-clockmod: Don't validate the frequency table twice
cpufreq: powernow: Don't validate the frequency table twice
cpufreq: ppc_cbe: Don't validate the frequency table twice
cpufreq: pxa: Don't validate the frequency table twice
cpufreq: qoirq: Don't validate the frequency table twice
cpufreq: s3c24xx: Don't validate the frequency table twice
cpufreq: sc520: Don't validate the frequency table twice
cpufreq: scpi: Don't validate the frequency table twice
cpufreq: sfi: Don't validate the frequency table twice
cpufreq: sh: Don't validate the frequency table twice
cpufreq: sparc: Don't validate the frequency table twice
cpufreq: speedstep: Don't validate the frequency table twice
cpufreq: tegra186: Don't validate the frequency table twice

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

Documentation/ABI/testing/sysfs-devices-system-cpu | 25 +
Documentation/ABI/testing/sysfs-power | 14 +
.../devicetree/bindings/cpufreq/cpufreq-dt.txt | 4 -
.../bindings/cpufreq/cpufreq-mediatek.txt | 4 -
Documentation/power/swsusp.txt | 10 +-
arch/arm/boot/dts/mt7623.dtsi | 2 -
drivers/acpi/device_pm.c | 11 +-
drivers/acpi/sleep.c | 24 +-
drivers/base/core.c | 25 +-
drivers/base/power/power.h | 1 +
drivers/base/power/wakeirq.c | 13 +-
drivers/cpufreq/Kconfig.arm | 1 +
drivers/cpufreq/acpi-cpufreq.c | 20 +-
drivers/cpufreq/arm_big_little.c | 9 +-
drivers/cpufreq/brcmstb-avs-cpufreq.c | 6 +-
drivers/cpufreq/cppc_cpufreq.c | 12 +-
drivers/cpufreq/cpufreq-dt.c | 8 +-
drivers/cpufreq/cpufreq.c | 28 +-
drivers/cpufreq/e_powersaver.c | 8 +-
drivers/cpufreq/elanfreq.c | 3 +-
drivers/cpufreq/freq_table.c | 16 +-
drivers/cpufreq/ia64-acpi-cpufreq.c | 7 +-
drivers/cpufreq/imx6q-cpufreq.c | 7 +-
drivers/cpufreq/longhaul.c | 3 +-
drivers/cpufreq/mediatek-cpufreq.c | 13 +-
drivers/cpufreq/p4-clockmod.c | 3 +-
drivers/cpufreq/powernow-k6.c | 3 +-
drivers/cpufreq/powernow-k7.c | 3 +-
drivers/cpufreq/powernow-k8.c | 24 +-
drivers/cpufreq/powernv-cpufreq.c | 11 +-
drivers/cpufreq/ppc_cbe_cpufreq.c | 5 +-
drivers/cpufreq/pxa2xx-cpufreq.c | 4 +-
drivers/cpufreq/pxa3xx-cpufreq.c | 4 +-
drivers/cpufreq/qoriq-cpufreq.c | 21 +-
drivers/cpufreq/s3c24xx-cpufreq.c | 13 +-
drivers/cpufreq/sc520_freq.c | 3 +-
drivers/cpufreq/scpi-cpufreq.c | 10 +-
drivers/cpufreq/sfi-cpufreq.c | 3 +-
drivers/cpufreq/sh-cpufreq.c | 22 +-
drivers/cpufreq/sparc-us2e-cpufreq.c | 3 +-
drivers/cpufreq/sparc-us3-cpufreq.c | 3 +-
drivers/cpufreq/speedstep-centrino.c | 4 +-
drivers/cpufreq/speedstep-ich.c | 4 +-
drivers/cpufreq/speedstep-smi.c | 4 +-
drivers/cpufreq/tegra186-cpufreq.c | 3 +-
drivers/cpuidle/cpuidle-arm.c | 1 -
drivers/cpuidle/cpuidle-exynos.c | 3 +-
drivers/cpuidle/cpuidle.c | 9 +
drivers/cpuidle/poll_state.c | 17 +-
drivers/cpuidle/sysfs.c | 54 +
drivers/pcmcia/cs.c | 10 +-
drivers/pcmcia/cs_internal.h | 1 +
drivers/powercap/intel_rapl.c | 1 +
include/linux/cpufreq.h | 1 +
include/linux/cpuidle.h | 4 +
include/linux/device.h | 2 +
kernel/power/hibernate.c | 26 +-
tools/power/pm-graph/Makefile | 29 +-
tools/power/pm-graph/bootgraph.8 | 18 +-
.../pm-graph/{analyze_boot.py => bootgraph.py} | 219 ++-
tools/power/pm-graph/config/cgskip.txt | 65 +
.../pm-graph/config/custom-timeline-functions.cfg | 205 +++
tools/power/pm-graph/config/example.cfg | 133 ++
tools/power/pm-graph/config/freeze-callgraph.cfg | 94 ++
tools/power/pm-graph/config/freeze-dev.cfg | 93 ++
tools/power/pm-graph/config/freeze.cfg | 93 ++
tools/power/pm-graph/config/standby-callgraph.cfg | 94 ++
tools/power/pm-graph/config/standby-dev.cfg | 93 ++
tools/power/pm-graph/config/standby.cfg | 93 ++
tools/power/pm-graph/config/suspend-callgraph.cfg | 98 ++
tools/power/pm-graph/config/suspend-dev.cfg | 93 ++
tools/power/pm-graph/config/suspend-x2-proc.cfg | 93 ++
tools/power/pm-graph/config/suspend.cfg | 93 ++
tools/power/pm-graph/sleepgraph.8 | 47 +-
.../pm-graph/{analyze_suspend.py => sleepgraph.py} | 1625 ++++++++++++--------
75 files changed, 2916 insertions(+), 915 deletions(-)