Skip to content
  • Linus Torvalds's avatar
    Merge tag 'pm-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · d57d3943
    Linus Torvalds authored
    Pull power management updates from Rafael Wysocki:
     "The majority of changes go into the cpufreq subsystem this time.
    
      To me, quite obviously, the biggest ticket item is the new "schedutil"
      governor.  Interestingly enough, it's the first new cpufreq governor
      since the beginning of the git era (except for some out-of-the-tree
      ones).
    
      There are two main differences between it and the existing governors.
      First, it uses the information provided by the scheduler directly for
      making its decisions, so it doesn't have to track anything by itself.
      Second, it can invoke drivers (supporting that feature) to adjust CPU
      performance right away without having to spawn work items to be
      executed in process context or similar.  Currently, the acpi-cpufreq
      driver is the only one supporting that mode of operation, but then it
      is used on a large number of systems.
    
      The "schedutil" governor as included here is very simple and mostly
      regarded as a foundation for future work on the integration of the
      scheduler with CPU power management (in fact, there is work in
      progress on top of it already).  Nevertheless it works and the
      preliminary results obtained with it are encouraging.
    
      There also is some consolidation of CPU frequency management for ARM
      platforms that can add their machine IDs the the new stub dt-platdev
      driver now and that will take care of creating the requisite platform
      device for cpufreq-dt, so it is not necessary to do that in platform
      code any more.  Several ARM platforms are switched over to using this
      generic mechanism.
    
      In addition to that, the intel_pstate driver is now going to respect
      CPU frequency limits set by the platform firmware (or a BMC) and
      provided via the ACPI _PPC object.
    
      The devfreq subsystem is getting a new "passive" governor for SoCs
      subsystems that will depend on somebody else to manage their voltage
      rails and its support for Samsung Exynos SoCs is consolidated.
    
      The rest is support for new hardware (Intel Broxton support in
      intel_idle for one example), bug fixes, optimizations and cleanups in
      a number of places.
    
      Specifics:
    
       - New cpufreq "schedutil" governor (making decisions based on CPU
         utilization information provided by the scheduler and capable of
         switching CPU frequencies right away if the underlying driver
         supports that) and support for fast frequency switching in the
         acpi-cpufreq driver (Rafael Wysocki)
    
       - Consolidation of CPU frequency management on ARM platforms allowing
         them to get rid of some platform-specific boilerplate code if they
         are going to use the cpufreq-dt driver (Viresh Kumar, Finley Xiao,
         Marc Gonzalez)
    
       - Support for ACPI _PPC and CPU frequency limits in the intel_pstate
         driver (Srinivas Pandruvada)
    
       - Fixes and cleanups in the cpufreq core and generic governor code
         (Rafael Wysocki, Sai Gurrappadi)
    
       - intel_pstate driver optimizations and cleanups (Rafael Wysocki,
         Philippe Longepe, Chen Yu, Joe Perches)
    
       - cpufreq powernv driver fixes and cleanups (Akshay Adiga, Shilpasri
         Bhat)
    
       - cpufreq qoriq driver fixes and cleanups (Jia Hongtao)
    
       - ACPI cpufreq driver cleanups (Viresh Kumar)
    
       - Assorted cpufreq driver updates (Ashwin Chaugule, Geliang Tang,
         Javier Martinez Canillas, Paul Gortmaker, Sudeep Holla)
    
       - Assorted cpufreq fixes and cleanups (Joe Perches, Arnd Bergmann)
    
       - Fixes and cleanups in the OPP (Operating Performance Points)
         framework, mostly related to OPP sharing, and reorganization of
         OF-dependent code in it (Viresh Kumar, Arnd Bergmann, Sudeep Holla)
    
       - New "passive" governor for devfreq (for SoC subsystems that will
         rely on someone else for the management of their power resources)
         and consolidation of devfreq support for Exynos platforms, coding
         style and typo fixes for devfreq (Chanwoo Choi, MyungJoo Ham)
    
       - PM core fixes and cleanups, mostly to make it work better with the
         generic power domains (genpd) framework, and updates for that
         framework (Ulf Hansson, Thierry Reding, Colin Ian King)
    
       - Intel Broxton support for the intel_idle driver (Len Brown)
    
       - cpuidle core optimization and fix (Daniel Lezcano, Dave Gerlach)
    
       - ARM cpuidle cleanups (Jisheng Zhang)
    
       - Intel Kabylake support for the RAPL power capping driver (Jacob
         Pan)
    
       - AVS (Adaptive Voltage Switching) rockchip-io driver update (Heiko
         Stuebner)
    
       - Updates for the cpupower tool (Arjun Sreedharan, Colin Ian King,
         Mattia Dongili, Thomas Renninger)"
    
    * tag 'pm-4.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (112 commits)
      intel_pstate: Clean up get_target_pstate_use_performance()
      intel_pstate: Use sample.core_avg_perf in get_avg_pstate()
      intel_pstate: Clarify average performance computation
      intel_pstate: Avoid unnecessary synchronize_sched() during initialization
      cpufreq: schedutil: Make default depend on CONFIG_SMP
      cpufreq: powernv: del_timer_sync when global and local pstate are equal
      cpufreq: powernv: Move smp_call_function_any() out of irq safe block
      intel_pstate: Clean up intel_pstate_get()
      cpufreq: schedutil: Make it depend on CONFIG_SMP
      cpufreq: governor: Fix handling of special cases in dbs_update()
      PM / OPP: Move CONFIG_OF dependent code in a separate file
      cpufreq: intel_pstate: Ignore _PPC processing under HWP
      cpufreq: arm_big_little: use generic OPP functions for {init, free}_opp_table
      PM / OPP: add non-OF versions of dev_pm_opp_{cpumask_, }remove_table
      cpufreq: tango: Use generic platdev driver
      PM / OPP: pass cpumask by reference
      cpufreq: Fix GOV_LIMITS handling for the userspace governor
      cpupower: fix potential memory leak
      PM / devfreq: style/typo fixes
      PM / devfreq: exynos: Add the detailed correlation for Exynos5422 bus
      ..
    d57d3943