1. 21 Dec, 2018 3 commits
    • Rafael J. Wysocki's avatar
      Merge branches 'pm-core', 'pm-qos', 'pm-domains' and 'pm-sleep' · 442a5d00
      Rafael J. Wysocki authored
      * pm-core:
        PM-runtime: Switch autosuspend over to using hrtimers
      
      * pm-qos:
        PM / QoS: Change to use DEFINE_SHOW_ATTRIBUTE macro
      
      * pm-domains:
        PM / Domains: remove define_genpd_open_function() and define_genpd_debugfs_fops()
      
      * pm-sleep:
        PM / sleep: convert to DEFINE_SHOW_ATTRIBUTE
      442a5d00
    • Rafael J. Wysocki's avatar
      Merge branch 'pm-opp' · 6f049e7c
      Rafael J. Wysocki authored
      * pm-opp:
        PM / Domains: Propagate performance state updates
        PM / Domains: Factorize dev_pm_genpd_set_performance_state()
        PM / Domains: Save OPP table pointer in genpd
        OPP: Don't return 0 on error from of_get_required_opp_performance_state()
        OPP: Add dev_pm_opp_xlate_performance_state() helper
        OPP: Improve _find_table_of_opp_np()
        PM / Domains: Make genpd performance states orthogonal to the idlestates
        OPP: Fix missing debugfs supply directory for OPPs
        OPP: Use opp_table->regulators to verify no regulator case
        OPP: Remove of_dev_pm_opp_find_required_opp()
        OPP: Rename and relocate of_genpd_opp_to_performance_state()
        OPP: Configure all required OPPs
        OPP: Add dev_pm_opp_{set|put}_genpd_virt_dev() helper
        PM / Domains: Add genpd_opp_to_performance_state()
        OPP: Populate OPPs from "required-opps" property
        OPP: Populate required opp tables from "required-opps" property
        OPP: Separate out custom OPP handler specific code
        OPP: Identify and mark genpd OPP tables
        PM / Domains: Rename genpd virtual devices as virt_dev
      6f049e7c
    • Rafael J. Wysocki's avatar
      Merge branches 'pm-cpuidle', 'pm-cpufreq' and 'pm-cpufreq-sched' · 3a56fe68
      Rafael J. Wysocki authored
      * pm-cpuidle:
        cpuidle: Add 'above' and 'below' idle state metrics
        cpuidle: big.LITTLE: fix refcount leak
        cpuidle: Add cpuidle.governor= command line parameter
        cpuidle: poll_state: Disregard disable idle states
        Documentation: admin-guide: PM: Add cpuidle document
      
      * pm-cpufreq:
        cpufreq: qcom-hw: Add support for QCOM cpufreq HW driver
        dt-bindings: cpufreq: Introduce QCOM cpufreq firmware bindings
        cpufreq: nforce2: Remove meaningless return
        cpufreq: ia64: Remove unused header files
        cpufreq: imx6q: save one condition block for normal case of nvmem read
        cpufreq: imx6q: remove unused code
        cpufreq: pmac64: add of_node_put()
        cpufreq: powernv: add of_node_put()
        Documentation: intel_pstate: Clarify coordination of P-State limits
        cpufreq: intel_pstate: Force HWP min perf before offline
        cpufreq: s3c24xx: Change to use DEFINE_SHOW_ATTRIBUTE macro
      
      * pm-cpufreq-sched:
        sched/cpufreq: Add the SPDX tags
      3a56fe68
  2. 19 Dec, 2018 2 commits
    • Yangtao Li's avatar
      PM / Domains: remove define_genpd_open_function() and define_genpd_debugfs_fops() · d32dcc6c
      Yangtao Li authored
      We already have the DEFINE_SHOW_ATTRIBUTE, There is no need to define
      such a macro, so remove define_genpd_open_function and
      define_genpd_debugfs_fops.
      
      Convert them to DEFINE_SHOW_ATTRIBUTE.
      Signed-off-by: default avatarYangtao Li <tiny.windzz@gmail.com>
      Acked-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      d32dcc6c
    • Vincent Guittot's avatar
      PM-runtime: Switch autosuspend over to using hrtimers · 8234f673
      Vincent Guittot authored
      PM-runtime uses the timer infrastructure for autosuspend. This implies
      that the minimum time before autosuspending a device is in the range
      of 1 tick included to 2 ticks excluded
       -On arm64 this means between 4ms and 8ms with default jiffies
        configuration
       -And on arm, it is between 10ms and 20ms
      
      These values are quite high for embedded systems which sometimes want
      the duration to be in the range of 1 ms.
      
      It is possible to switch autosuspend over to using hrtimers to get
      finer granularity for short durations and take advantage of slack to
      retain some margins and get long timeouts with minimum wakeups.
      
      On an arm64 platform that uses 1ms for autosuspending timeout of its
      GPU, idle power is reduced by 10% with hrtimer.
      
      The latency impact on arm64 hikey octo cores is:
       - mark_last_busy: from 1.11 us to 1.25 us
       - rpm_suspend: from 15.54 us to 15.38 us
      [Only the code path of rpm_suspend() that starts hrtimer has been
      measured.]
      
      arm64 image (arm64 default defconfig) decreases by around 3KB
      with following details:
      
      $ size vmlinux-timer
         text	   data	    bss	    dec	    hex	filename
      12034646	6869268	 386840	19290754	1265a82	vmlinux
      
      $ size vmlinux-hrtimer
         text	   data	    bss	    dec	    hex	filename
      12030550	6870164	 387032	19287746	1264ec2	vmlinux
      
      The latency impact on arm 32bits snowball dual cores is :
       - mark_last_busy: from 0.31 us usec to 0.77 us
       - rpm_suspend: from 6.83 us to 6.67 usec
      
      The increase of the image for snowball platform that I used for
      testing performance impact, is neglictable (244B).
      
      $ size vmlinux-timer
         text	   data	    bss	    dec	    hex	filename
      7157961	2119580	 264120	9541661	 91981d	build-ux500/vmlinux
      
      size vmlinux-hrtimer
         text	   data	    bss	    dec	    hex	filename
      7157773	21198846	 264248	9541905	 919911	vmlinux-hrtimer
      
      And arm 32bits image (multi_v7_defconfig) increases by around 1.7KB
      with following details:
      
      $ size vmlinux-timer
         text	   data	    bss	    dec	    hex	filename
      13304443	6803420	 402768	20510631	138f7a7	vmlinux
      
      $ size vmlinux-hrtimer
         text	   data	    bss	    dec	    hex	filename
      13304299	6805276	 402768	20512343	138fe57	vmlinux
      Signed-off-by: default avatarVincent Guittot <vincent.guittot@linaro.org>
      Reviewed-by: default avatarUlf Hansson <ulf.hansson@linaro.org>
      Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
      8234f673
  3. 18 Dec, 2018 4 commits
  4. 16 Dec, 2018 1 commit
  5. 14 Dec, 2018 29 commits
  6. 13 Dec, 2018 1 commit