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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Linus,

This goes early, because I'm attending the LCA next week and I may be
sparsely available and generally time-constrained during the next
several days.

In case you decide to open the 4.16 merge window any time soon, please
pull from the tag

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

with top-most commit ee43730d65155c5b3c3d0531f11daf59f8f42a73

 Merge branches 'pm-opp', 'pm-devfreq', 'pm-avs' and 'pm-tools'

on top of commit a8750ddca918032d6349adbf9a4b6555e7db20da

 Linux 4.15-rc8

to receive power management updates for 4.16-rc1.

This includes some infrastructure changes in the PM core, mostly
related to integration between runtime PM and system-wide suspend
and hibernation, plus some driver changes depending on them and
fixes for issues in that area which have become quite apparent
recently.

Also included are changes making more x86-based systems use the Low
Power Sleep S0 _DSM interface by default, which turned out to be
necessary to handle power button wakeups from suspend-to-idle on
Surface Pro3.

On the cpufreq front we have fixes and cleanups in the core, some
new hardware support, driver updates and the removal of some unused
code from the CPU cooling thermal driver.

Apart from this, the Operating Performance Points (OPP) framework
is prepared to be used with power domains in the future and there
is a usual bunch of assorted fixes and cleanups.

Specifics:

 - Define a PM driver flag allowing drivers to request that their
   devices be left in suspend after system-wide transitions to the
   working state if possible and add support for it to the PCI bus
   type and the ACPI PM domain (Rafael Wysocki).

 - Make the PM core carry out optimizations for devices with driver
   PM flags set in some cases and make a few drivers set those flags
   (Rafael Wysocki).

 - Fix and clean up wrapper routines allowing runtime PM device
   callbacks to be re-used for system-wide PM, change the generic
   power domains (genpd) framework to stop using those routines
   incorrectly and fix up a driver depending on that behavior of
   genpd (Rafael Wysocki, Ulf Hansson, Geert Uytterhoeven).

 - Fix and clean up the PM core's device wakeup framework and
   re-factor system-wide PM core code related to device wakeup
   (Rafael Wysocki, Ulf Hansson, Brian Norris).

 - Make more x86-based systems use the Low Power Sleep S0 _DSM
   interface by default (to fix power button wakeup from
   suspend-to-idle on Surface Pro3) and add a kernel command line
   switch to tell it to ignore the system sleep blacklist in the
   ACPI core (Rafael Wysocki).

 - Fix a race condition related to cpufreq governor module removal
   and clean up the governor management code in the cpufreq core
   (Rafael Wysocki).

 - Drop the unused generic code related to the handling of the static
   power energy usage model in the CPU cooling thermal driver along
   with the corresponding documentation (Viresh Kumar).

 - Add mt2712 support to the Mediatek cpufreq driver (Andrew-sh Cheng).

 - Add a new operating point to the imx6ul and imx6q cpufreq drivers
   and switch the latter to using clk_bulk_get() (Anson Huang, Dong
   Aisheng).

 - Add support for multiple regulators to the TI cpufreq driver along
   with a new DT binding related to that and clean up that driver
   somewhat (Dave Gerlach).

 - Fix a powernv cpufreq driver regression leading to incorrect CPU
   frequency reporting, fix that driver to deal with non-continguous
   P-states correctly and clean it up (Gautham Shenoy, Shilpasri Bhat).

 - Add support for frequency scaling on Armada 37xx SoCs through the
   generic DT cpufreq driver (Gregory CLEMENT).

 - Fix error code paths in the mvebu cpufreq driver (Gregory CLEMENT).

 - Fix a transition delay setting regression in the longhaul cpufreq
   driver (Viresh Kumar).

 - Add Skylake X (server) support to the intel_pstate cpufreq driver
   and clean up that driver somewhat (Srinivas Pandruvada).

 - Clean up the cpufreq statistics collection code (Viresh Kumar).

 - Drop cluster terminology and dependency on physical_package_id
   from the PSCI driver and drop dependency on arm_big_little from
   the SCPI cpufreq driver (Sudeep Holla).

 - Add support for system-wide suspend and resume to the RAPL power
   capping driver and drop a redundant semicolon from it (Zhen Han,
   Luis de Bethencourt).

 - Make SPI domain validation (in the SCSI SPI transport driver) and
   system-wide suspend mutually exclusive as they rely on the same
   underlying mechanism and cannot be carried out at the same time
   (Bart Van Assche).

 - Fix the computation of the amount of memory to preallocate in the
   hibernation core and clean up one function in there (Rainer Fiebig,
   Kyungsik Lee).

 - Prepare the Operating Performance Points (OPP) framework for being
   used with power domains and clean up one function in it (Viresh
   Kumar, Wei Yongjun).

 - Clean up the generic sysfs interface for device PM (Andy Shevchenko).

 - Fix several minor issues in power management frameworks and clean
   them up a bit (Arvind Yadav, Bjorn Andersson, Geert Uytterhoeven,
   Gustavo Silva, Julia Lawall, Luis de Bethencourt, Paul Gortmaker,
   Sergey Senozhatsky, gaurav jindal).

 - Make it easier to disable PM via Kconfig (Mark Brown).

 - Clean up the cpupower and intel_pstate_tracer utilities (Doug
   Smythies, Laura Abbott).

Thanks!


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

Andrew-sh Cheng (2):
      cpufreq: mediatek: add mt2712 into compatible list
      cpufreq: mediatek: add mediatek related projects into blacklist

Andy Shevchenko (3):
      PM / sysfs: Convert to use sysfs_streq()
      PM / sysfs: Remove redundant 'else' keyword.
      PM / sysfs: Convert to use DEVICE_ATTR_RO / DEVICE_ATTR_RW

Anson Huang (2):
      ARM: dts: imx6ul: add 696MHz operating point
      cpufreq: imx6q: add 696MHz operating point for i.mx6ul

Arvind Yadav (1):
      powercap: Simplify powercap_init()

Bart Van Assche (2):
      PM / sleep: Make lock/unlock_system_sleep() available to kernel modules
      block, scsi: Fix race between SPI domain validation and system suspend

Bjorn Andersson (1):
      PM / devfreq: Propagate error from devfreq_add_device()

Brian Norris (1):
      PM / wakeup: only recommend "call"ing device_init_wakeup() once

Dave Gerlach (4):
      cpufreq: ti-cpufreq: Convert to module_platform_driver
      cpufreq: ti-cpufreq: Add support for multiple regulators
      dt-bindings: opp: Introduce ti-opp-supply bindings
      PM / OPP: Add ti-opp-supply driver

Dong Aisheng (1):
      cpufreq: imx6q: switch to Use clk_bulk_get() to refine clk operations

Doug Smythies (1):
      tools/power/x86/intel_pstate_tracer: Free the trace buffer memory

Gautham R. Shenoy (3):
      powernv-cpufreq: Add helper to extract pstate from PMSR
      powernv-cpufreq: Fix pstate_to_idx() to handle non-continguous pstates
      powernv-cpufreq: Treat pstates as opaque 8-bit values

Geert Uytterhoeven (2):
      PM / Domains: Remove obsolete "samsung,power-domain" check
      dmaengine: rcar-dmac: Make DMAC reinit during system resume explicit

Gregory CLEMENT (7):
      cpufreq: ARM: sort the Kconfig menu
      cpufreq: sort the drivers in ARM part
      cpufreq: mvebu: Free the clock reference in the normal path
      cpufreq: mvebu: Free opp if registering failed
      dt-bindings: marvell: Add documentation for the North Bridge PM
on Armada 37xx
      MAINTAINERS: add new entries for Armada 37xx cpufreq driver
      cpufreq: Add DVFS support for Armada 37xx

Gustavo A. R. Silva (1):
      PM / devfreq: Fix potential NULL pointer dereference in governor_store

Julia Lawall (1):
      PM / AVS: rockchip-io: account for const type of of_device_id.data

Kyungsik Lee (1):
      PM / hibernate: Drop unused parameter of enough_swap

Laura Abbott (1):
      cpupower: Remove FSF address

Luis de Bethencourt (2):
      powercap: intel_rapl: Fix trailing semicolon
      PCI / PM: Remove spurious semicolon

Mark Brown (1):
      PM: Provide a config snippet for disabling PM

Paul Gortmaker (1):
      bus: simple-pm-bus: convert bool SIMPLE_PM_BUS to tristate

Rafael J. Wysocki (24):
      PM / core: Add LEAVE_SUSPENDED driver flag
      PCI / PM: Support for LEAVE_SUSPENDED driver flag
      ACPI / PM: Support for LEAVE_SUSPENDED driver flag in ACPI PM domain
      ACPI / PM: Make it possible to ignore the system sleep blacklist
      cpufreq: Clean up cpufreq_parse_governor()
      cpufreq: Pass policy pointer to cpufreq_parse_governor()
      cpufreq: Drop pointless return statement
      cpufreq: Fix governor module removal race
      PM / core: Use dev_pm_skip_next_resume_phases() internally
      PM / wakeup: Drop redundant check from device_set_wakeup_enable()
      PM / wakeup: Drop redundant check from device_init_wakeup()
      PM / core: Add helpers for subsystem callback selection
      PM / core: Direct DPM_FLAG_SMART_SUSPEND optimization
      PM / core: Direct DPM_FLAG_LEAVE_SUSPENDED handling
      PM / wakeup: Do not fail dev_pm_attach_wake_irq() unnecessarily
      PCI / PM: Use SMART_SUSPEND and LEAVE_SUSPENDED flags for PCIe ports
      PM / mfd: intel-lpss: Use DPM_FLAG_SMART_SUSPEND
      PM: i2c-designware-platdrv: Use DPM_FLAG_SMART_PREPARE
      PM: i2c-designware-platdrv: Optimize power management
      ACPI / PM: Use Low Power S0 Idle on more systems
      platform/x86: surfacepro3: Support for wakeup from suspend-to-idle
      PM / genpd: Stop/start devices without pm_runtime_force_suspend/resume()
      PM / runtime: Rework pm_runtime_force_suspend/resume()
      PM / runtime: Check ignore_children in pm_runtime_need_not_resume()

Rainer Fiebig (1):
      PM: hibernate: Do not subtract NR_FILE_MAPPED in minimum_image_size()

Sergey Senozhatsky (1):
      PM / core: remove unneeded kallsyms include

Shilpasri G Bhat (1):
      cpufreq: powernv: Dont assume distinct pstate values for nominal and pmin

Srinivas Pandruvada (2):
      cpufreq: intel_pstate: Replace bxt_funcs with core_funcs
      cpufreq: intel_pstate: Add Skylake servers support

Sudeep Holla (2):
      drivers: psci: remove cluster terminology and dependency on
physical_package_id
      cpufreq: scpi: remove arm_big_little dependency

Ulf Hansson (8):
      PM / core: Re-factor some code dealing with parents in __device_suspend()
      PM / core: Assign the wakeup_path status flag in __device_prepare()
      PM / wakeup: Add device_set_wakeup_path() helper to control wakeup path
      PM / core: Re-structure code for clearing the direct_complete flag
      PM / core: Propagate wakeup_path status flag in __device_suspend_late()
      PM / domains: Don't skip driver's ->suspend|resume_noirq() callbacks
      PM / wakeup: Print warn if device gets enabled as wakeup source
during sleep
      PM / runtime: Allow no callbacks in pm_runtime_force_suspend|resume()

Viresh Kumar (9):
      cpu_cooling: Make of_cpufreq_power_cooling_register() parse DT
      cpu_cooling: Remove unused cpufreq_power_cooling_register()
      cpu_cooling: Keep only one of_cpufreq*cooling_register() helper
      cpu_cooling: Drop static-power related stuff
      cpufreq: longhaul: Revert transition_delay_us to 200 ms
      OPP: Allow OPP table to be used for power-domains
      OPP: Introduce "required-opp" property
      cpu_cooling: Remove static-power related documentation
      cpufreq: stats: Change return type of cpufreq_stats_update() as void

Wei Yongjun (1):
      PM / OPP: Make local function ti_opp_supply_set_opp() static

Zhen Han (1):
      powercap: add suspend and resume mechanism for SOC power limit

gaurav jindal (1):
      cpuidle: Avoid NULL argument in cpuidle_switch_governor()

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

 Documentation/admin-guide/kernel-parameters.txt    |   5 +-
 .../bindings/arm/marvell/armada-37xx.txt           |  19 +
 Documentation/devicetree/bindings/opp/opp.txt      |  13 +
 .../bindings/opp/ti-omap5-opp-supply.txt           |  63 +++
 .../devicetree/bindings/power/power_domain.txt     |  65 ++++
 Documentation/driver-api/pm/devices.rst            |  54 ++-
 Documentation/power/pci.txt                        |  11 +
 Documentation/thermal/cpu-cooling-api.txt          | 115 +-----
 MAINTAINERS                                        |   2 +
 arch/arm/boot/dts/imx6ul.dtsi                      |   2 +
 arch/x86/kernel/acpi/sleep.c                       |   2 +
 drivers/acpi/device_pm.c                           |  27 +-
 drivers/acpi/sleep.c                               |  16 +-
 drivers/base/power/domain.c                        |  69 ++--
 drivers/base/power/main.c                          | 415 +++++++++++++++-----
 drivers/base/power/power.h                         |  11 +-
 drivers/base/power/runtime.c                       |  84 ++--
 drivers/base/power/sysfs.c                         | 182 ++++-----
 drivers/base/power/wakeirq.c                       |   8 +-
 drivers/base/power/wakeup.c                        |  26 +-
 drivers/bus/Kconfig                                |   2 +-
 drivers/cpufreq/Kconfig.arm                        |  88 +++--
 drivers/cpufreq/Makefile                           |   9 +-
 drivers/cpufreq/arm_big_little.c                   |  23 +-
 drivers/cpufreq/armada-37xx-cpufreq.c              | 241 ++++++++++++
 drivers/cpufreq/cpufreq-dt-platdev.c               |   8 +
 drivers/cpufreq/cpufreq-dt.c                       |  27 +-
 drivers/cpufreq/cpufreq.c                          |  55 +--
 drivers/cpufreq/cpufreq_stats.c                    |   3 +-
 drivers/cpufreq/imx6q-cpufreq.c                    | 171 +++++----
 drivers/cpufreq/intel_pstate.c                     |  14 +-
 drivers/cpufreq/longhaul.c                         |   2 +-
 drivers/cpufreq/mediatek-cpufreq.c                 |  23 +-
 drivers/cpufreq/mvebu-cpufreq.c                    |  16 +-
 drivers/cpufreq/powernv-cpufreq.c                  | 143 ++++---
 drivers/cpufreq/qoriq-cpufreq.c                    |  14 +-
 drivers/cpufreq/scpi-cpufreq.c                     | 193 +++++++++-
 drivers/cpufreq/ti-cpufreq.c                       |  51 ++-
 drivers/cpuidle/governor.c                         |   5 +-
 drivers/devfreq/devfreq.c                          |   5 +-
 drivers/dma/sh/rcar-dmac.c                         |  24 +-
 drivers/firmware/psci_checker.c                    |  46 ++-
 drivers/i2c/busses/i2c-designware-core.h           |   2 -
 drivers/i2c/busses/i2c-designware-platdrv.c        |  39 +-
 drivers/mfd/intel-lpss.c                           |   6 +-
 drivers/opp/Makefile                               |   1 +
 drivers/opp/ti-opp-supply.c                        | 425 +++++++++++++++++++++
 drivers/pci/pci-driver.c                           |  21 +-
 drivers/pci/pcie/portdrv_pci.c                     |   3 +
 drivers/platform/x86/surfacepro3_button.c          |   4 +-
 drivers/power/avs/rockchip-io-domain.c             |  24 +-
 drivers/powercap/intel_rapl.c                      |  99 ++++-
 drivers/powercap/powercap_sys.c                    |   6 +-
 drivers/scsi/scsi_transport_spi.c                  |  16 +-
 drivers/thermal/cpu_cooling.c                      | 201 ++--------
 include/linux/acpi.h                               |   1 +
 include/linux/cpu_cooling.h                        |  75 +---
 include/linux/pm.h                                 |  16 +-
 include/linux/pm_wakeup.h                          |   7 +
 include/linux/suspend.h                            |  28 +-
 include/trace/events/thermal.h                     |  10 +-
 kernel/configs/nopm.config                         |  15 +
 kernel/power/main.c                                |  29 ++
 kernel/power/snapshot.c                            |   6 +-
 kernel/power/swap.c                                |   4 +-
 tools/power/cpupower/lib/cpufreq.h                 |   4 -
 .../x86/intel_pstate_tracer/intel_pstate_tracer.py |  15 +
 67 files changed, 2310 insertions(+), 1099 deletions(-)



[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux