Hi Linus, Please pull from the tag git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git \ pm-5.7-rc1 with top-most commit 2409000a0cad2242fd4e2578f761f97069625478 Merge branches 'pm-devfreq', 'powercap' and 'pm-docs' on top of commit 16fbf79b0f83bc752cee8589279f1ebfe57b3b6e Linux 5.6-rc7 to receive power management updates for 5.7-rc1. These clean up and rework the PM QoS API, address a suspend-to-idle wakeup regression on some ACPI-based platforms, clean up and extend a few cpuidle drivers, update multiple cpufreq drivers and cpufreq documentation, and fix a number of issues in devfreq and several other things all over. Specifics: - Clean up and rework the PM QoS API to simplify the code and reduce the size of it (Rafael Wysocki). - Fix a suspend-to-idle wakeup regression on Dell XPS13 9370 and similar platforms where the USB plug/unplug events are handled by the EC (Rafael Wysocki). - CLean up the intel_idle and PSCI cpuidle drivers (Rafael Wysocki, Ulf Hansson). - Extend the haltpoll cpuidle driver so that it can be forced to run on some systems where it refused to load (Maciej Szmigiero). - Convert several cpufreq documents to the .rst format and move the legacy driver documentation into one common file (Mauro Carvalho Chehab, Rafael Wysocki). - Update several cpufreq drivers: * Extend and fix the imx-cpufreq-dt driver (Anson Huang). * Improve the -EPROBE_DEFER handling and fix unwanted CPU overclocking on i.MX6ULL in imx6q-cpufreq (Anson Huang, Christoph Niedermaier). * Add support for Krait based SoCs to the qcom driver (Ansuel Smith). * Add support for OPP_PLUS to ti-cpufreq (Lokesh Vutla). * Add platform specific intermediate callbacks support to cpufreq-dt and update the imx6q driver (Peng Fan). * Simplify and consolidate some pieces of the intel_pstate driver and update its documentation (Rafael Wysocki, Alex Hung). - Fix several devfreq issues: * Remove unneeded extern keyword from a devfreq header file and use the DEVFREQ_GOV_UPDATE_INTERNAL event name instead of DEVFREQ_GOV_INTERNAL (Chanwoo Choi). * Fix the handling of dev_pm_qos_remove_request() result (Leonard Crestez). * Use constant name for userspace governor (Pierre Kuo). * Get rid of doc warnings and fix a typo (Christophe JAILLET). - Use built-in RCU list checking in some places in the PM core to avoid false-positive RCU usage warnings (Madhuparna Bhowmik). - Add explicit READ_ONCE()/WRITE_ONCE() annotations to low-level PM QoS routines (Qian Cai). - Fix removal of wakeup sources to avoid NULL pointer dereferences in a corner case (Neeraj Upadhyay). - Clean up the handling of hibernate compat ioctls and fix the related documentation (Eric Biggers). - Update the idle_inject power capping driver to use variable-length arrays instead of zero-length arrays (Gustavo Silva). - Fix list format in a PM QoS document (Randy Dunlap). - Make the cpufreq stats module use scnprintf() to avoid potential buffer overflows (Takashi Iwai). - Add pm_runtime_get_if_active() to PM-runtime API (Sakari Ailus). - Allow no domain-idle-states DT property in generic PM domains (Ulf Hansson). - Fix a broken y-axis scale in the intel_pstate_tracer utility (Doug Smythies). Thanks! --------------- Alex Hung (1): Documentation: intel_pstate: update links for references Anson Huang (3): cpufreq: imx-cpufreq-dt: Add "cpu-supply" property check cpufreq: imx-cpufreq-dt: Correct i.MX8MP's market segment fuse location cpufreq: imx6q-cpufreq: Improve the logic of -EPROBE_DEFER handling Ansuel Smith (1): cpufreq: qcom: Add support for krait based socs Chanwoo Choi (2): PM / devfreq: Remove unneeded extern keyword PM / devfreq: Change to DEVFREQ_GOV_UPDATE_INTERVAL event name Christoph Niedermaier (1): cpufreq: imx6q: Fixes unwanted cpu overclocking on i.MX6ULL Christophe JAILLET (1): PM / devfreq: Fix a typo in a comment Doug Smythies (1): tools/power/x86/intel_pstate_tracer: fix a broken y-axis scale Eric Biggers (2): PM: hibernate: fix docs for ioctls that return loff_t via pointer PM / hibernate: Remove unnecessary compat ioctl overrides Gustavo A. R. Silva (1): powercap: idle_inject: Replace zero-length array with flexible-array member Leonard Crestez (1): PM / devfreq: Fix handling dev_pm_qos_remove_request result Lokesh Vutla (1): cpufreq: ti-cpufreq: Add support for OPP_PLUS Maciej S. Szmigiero (1): cpuidle: haltpoll: allow force loading on hosts without the REALTIME hint Madhuparna Bhowmik (2): PM: sleep: core: Use built-in RCU list checking PM: sleep: wakeup: Use built-in RCU list checking Mauro Carvalho Chehab (6): docs: cpufreq: fix a broken reference docs: cpu-freq: convert index.txt to ReST docs: cpu-freq: convert core.txt to ReST docs: cpu-freq: convert cpu-drivers.txt to ReST docs: cpu-freq: convert cpufreq-stats.txt to ReST PM / devfreq: Get rid of some doc warnings Neeraj Upadhyay (1): PM: sleep: wakeup: Skip wakeup_source_sysfs_remove() if device is not there Peng Fan (3): cpufreq: imx6q: fix error handling cpufreq: imx6q: read OCOTP through nvmem for imx6q cpufreq: dt: Allow platform specific intermediate callbacks Qian Cai (1): PM: QoS: annotate data races in pm_qos_*_value() Rafael J. Wysocki (43): intel_idle: Simplify LAPIC timer reliability checks intel_idle: Clean up definitions of cpuidle callbacks intel_idle: Relocate definitions of cpuidle callbacks intel_idle: Add __initdata annotations to init time variables intel_idle: Annotate init time data structures intel_idle: Reorder declarations of static variables intel_idle: Clean up kerneldoc comments for multiple functions intel_idle: Define CPUIDLE_FLAG_TLB_FLUSHED as BIT(16) intel_idle: Update copyright notice, known limitations and version PM: QoS: Drop debugfs interface PM: QoS: Drop pm_qos_update_request_timeout() PM: QoS: Drop the PM_QOS_SUM QoS type PM: QoS: Clean up pm_qos_update_target() and pm_qos_update_flags() PM: QoS: Clean up pm_qos_read_value() and pm_qos_get/set_value() PM: QoS: Drop iterations over global QoS classes PM: QoS: Clean up misc device file operations PM: QoS: Redefine struct pm_qos_request and drop struct pm_qos_object PM: QoS: Drop PM_QOS_CPU_DMA_LATENCY notifier chain PM: QoS: Rename things related to the CPU latency QoS PM: QoS: Simplify definitions of CPU latency QoS trace events PM: QoS: Adjust pm_qos_request() signature and reorder pm_qos.h PM: QoS: Add CPU latency QoS API wrappers cpuidle: Call cpu_latency_qos_limit() instead of pm_qos_request() x86: platform: iosf_mbi: Call cpu_latency_qos_*() instead of pm_qos_*() drm: i915: Call cpu_latency_qos_*() instead of pm_qos_*() drivers: hsi: Call cpu_latency_qos_*() instead of pm_qos_*() drivers: media: Call cpu_latency_qos_*() instead of pm_qos_*() drivers: mmc: Call cpu_latency_qos_*() instead of pm_qos_*() drivers: net: Call cpu_latency_qos_*() instead of pm_qos_*() drivers: spi: Call cpu_latency_qos_*() instead of pm_qos_*() drivers: tty: Call cpu_latency_qos_*() instead of pm_qos_*() drivers: usb: Call cpu_latency_qos_*() instead of pm_qos_*() sound: Call cpu_latency_qos_*() instead of pm_qos_*() PM: QoS: Drop PM_QOS_CPU_DMA_LATENCY and rename related functions PM: QoS: Update file information comments Documentation: PM: QoS: Update to reflect previous code changes PM: QoS: Make CPU latency QoS depend on CONFIG_CPU_IDLE Documentation: cpufreq: Move legacy driver documentation cpufreq: intel_pstate: Consolidate policy verification ACPI: PM: s2idle: Fix comment in acpi_s2idle_prepare_late() ACPICA: Allow acpi_any_gpe_status_set() to skip one GPE ACPI: PM: s2idle: Refine active GPEs check cpufreq: intel_pstate: Simplify intel_pstate_cpu_init() Randy Dunlap (1): Documentation: power: fix pm_qos_interface.rst format warning Sakari Ailus (1): PM: runtime: Add pm_runtime_get_if_active() Takashi Iwai (1): cpufreq: Use scnprintf() for avoiding potential buffer overflow Ulf Hansson (2): PM / Domains: Allow no domain-idle-states DT property in genpd when parsing cpuidle: psci: Split psci_dt_cpu_init_idle() pierre Kuo (1): PM / devfreq: Use constant name of userspace governor --------------- Documentation/admin-guide/pm/cpufreq_drivers.rst | 274 ++++++++++ Documentation/admin-guide/pm/cpuidle.rst | 73 ++- Documentation/admin-guide/pm/intel_pstate.rst | 4 +- Documentation/admin-guide/pm/working-state.rst | 1 + Documentation/cpu-freq/amd-powernow.txt | 38 -- Documentation/cpu-freq/{core.txt => core.rst} | 65 +-- .../cpu-freq/{cpu-drivers.txt => cpu-drivers.rst} | 129 +++-- Documentation/cpu-freq/cpufreq-nforce2.txt | 19 - .../{cpufreq-stats.txt => cpufreq-stats.rst} | 119 +++-- Documentation/cpu-freq/index.rst | 39 ++ Documentation/cpu-freq/index.txt | 56 --- Documentation/cpu-freq/pcc-cpufreq.txt | 207 -------- .../devicetree/bindings/opp/qcom-nvmem-cpufreq.txt | 3 +- Documentation/index.rst | 1 + Documentation/power/pm_qos_interface.rst | 88 ++-- Documentation/power/runtime_pm.rst | 6 + Documentation/power/userland-swsusp.rst | 8 +- Documentation/trace/events-power.rst | 21 +- arch/x86/platform/intel/iosf_mbi.c | 13 +- drivers/acpi/acpica/achware.h | 2 +- drivers/acpi/acpica/evxfgpe.c | 17 +- drivers/acpi/acpica/hwgpe.c | 47 +- drivers/acpi/ec.c | 5 + drivers/acpi/internal.h | 1 + drivers/acpi/sleep.c | 24 +- drivers/base/power/domain.c | 2 +- drivers/base/power/main.c | 12 +- drivers/base/power/runtime.c | 36 +- drivers/base/power/wakeup.c | 17 +- drivers/cpufreq/Kconfig.arm | 2 +- drivers/cpufreq/Kconfig.x86 | 2 +- drivers/cpufreq/cpufreq-dt-platdev.c | 5 + drivers/cpufreq/cpufreq-dt.c | 4 + drivers/cpufreq/cpufreq-dt.h | 4 + drivers/cpufreq/cpufreq_stats.c | 14 +- drivers/cpufreq/imx-cpufreq-dt.c | 13 +- drivers/cpufreq/imx6q-cpufreq.c | 71 +-- drivers/cpufreq/intel_pstate.c | 26 +- drivers/cpufreq/qcom-cpufreq-nvmem.c | 191 ++++++- drivers/cpufreq/ti-cpufreq.c | 7 + drivers/cpuidle/cpuidle-haltpoll.c | 12 +- drivers/cpuidle/cpuidle-psci.c | 46 +- drivers/cpuidle/cpuidle.c | 40 +- drivers/cpuidle/governor.c | 2 +- drivers/devfreq/devfreq.c | 14 +- drivers/devfreq/governor.h | 21 +- drivers/devfreq/governor_simpleondemand.c | 4 +- drivers/devfreq/governor_userspace.c | 2 +- drivers/devfreq/tegra30-devfreq.c | 4 +- drivers/gpu/drm/i915/display/intel_dp.c | 4 +- drivers/gpu/drm/i915/i915_drv.c | 12 +- drivers/gpu/drm/i915/intel_sideband.c | 5 +- drivers/hsi/clients/cmt_speech.c | 9 +- drivers/idle/intel_idle.c | 302 +++++------ drivers/media/pci/saa7134/saa7134-video.c | 5 +- drivers/media/platform/via-camera.c | 4 +- drivers/mmc/host/sdhci-esdhc-imx.c | 14 +- drivers/net/ethernet/intel/e1000e/netdev.c | 13 +- drivers/net/wireless/ath/ath10k/core.c | 4 +- drivers/net/wireless/intel/ipw2x00/ipw2100.c | 10 +- drivers/powercap/idle_inject.c | 2 +- drivers/spi/spi-fsl-qspi.c | 4 +- drivers/tty/serial/8250/8250_omap.c | 13 +- drivers/tty/serial/omap-serial.c | 15 +- drivers/usb/chipidea/ci_hdrc_imx.c | 12 +- include/acpi/acpixf.h | 2 +- include/linux/devfreq.h | 106 ++-- include/linux/pm_qos.h | 81 +-- include/linux/pm_runtime.h | 12 +- include/trace/events/power.h | 59 +-- kernel/power/qos.c | 559 ++++++--------------- kernel/power/user.c | 16 +- sound/core/pcm_native.c | 14 +- sound/soc/intel/atom/sst/sst.c | 5 +- sound/soc/intel/atom/sst/sst_loader.c | 4 +- sound/soc/ti/omap-dmic.c | 7 +- sound/soc/ti/omap-mcbsp.c | 16 +- sound/soc/ti/omap-mcpdm.c | 16 +- .../x86/intel_pstate_tracer/intel_pstate_tracer.py | 1 - 79 files changed, 1564 insertions(+), 1573 deletions(-)