All of lore.kernel.org
 help / color / mirror / Atom feed
From: Viresh Kumar <viresh.kumar@linaro.org>
To: ulf.hansson@linaro.org, Rafael Wysocki <rjw@rjwysocki.net>,
	Kevin Hilman <khilman@kernel.org>,
	Len Brown <len.brown@intel.com>, Nishanth Menon <nm@ti.com>,
	Pavel Machek <pavel@ucw.cz>, Stephen Boyd <sboyd@kernel.org>,
	Viresh Kumar <vireshk@kernel.org>
Cc: Viresh Kumar <viresh.kumar@linaro.org>,
	linux-pm@vger.kernel.org,
	Vincent Guittot <vincent.guittot@linaro.org>,
	rnayak@codeaurora.org, niklas.cassel@linaro.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH V4 0/7] PM / Domains: Allow performance state propagation
Date: Fri, 14 Dec 2018 15:45:26 +0530	[thread overview]
Message-ID: <cover.1544782279.git.viresh.kumar@linaro.org> (raw)

Hi,

This series adds performance state propagation support in genpd core.
The propagation happens from the sub-domains to their masters. More
details can be found in the individual commit logs.

This is tested on hikey960 by faking power domains in such a way that
the CPU devices have two power domains and both of them have the same
master domain. The CPU device, as well as its power domains have
"required-opps" property set and the performance requirement from the
CPU eventually configures all the domains (2 sub-domains and 1 master).

Based on opp/linux-next branch (which is 4.20-rc1 +
multiple-power-domain-support-in-opp-core + some OPP fixes).

Rajendra has already tested the previous version of this series and so I
have included his Tested-by for all patches.

V3->V4:
- dev_pm_opp_xlate_performance_state() returns negative values on error
  now.
- of_get_required_opp_performance_state() is also updated to do the
  same.
- _genpd_set_performance_state() is not called anymore from
  _genpd_reeval_performance_state() and we get rid of the extra
  declaration.
- Improved commit log in the last patch.
- dropped an unlikely.

V2->V3:
- Include Ulf's patch (sent separately earlier) with this series.
- The performance state update code doesn't rely anymore on the power
  on/off state of the genpd, it sets and propagates rate in all cases.
- That simplified a lot of code from V2 in _genpd_power_on().
- commit logs improved for few commits.
- s/mstate/master_state/
- and few more minor changes.

v1->V2:
- First patch (1/5) is new and an improvement to earlier stuff.
- Move genpd_status_on() check to _genpd_reeval_performance_state() from
  _genpd_set_performance_state().
- Improve dev_pm_opp_xlate_performance_state() to handle 1:1 pstate
  mapping between genpd and its master and also to fix a problem while
  finding the dst_table.
- Handle pstate=0 case properly.

--
viresh

Ulf Hansson (1):
  PM / Domains: Make genpd performance states orthogonal to the
    idlestates

Viresh Kumar (6):
  OPP: Improve _find_table_of_opp_np()
  OPP: Add dev_pm_opp_xlate_performance_state() helper
  OPP: Don't return 0 on error from
    of_get_required_opp_performance_state()
  PM / Domains: Save OPP table pointer in genpd
  PM / Domains: Factorize dev_pm_genpd_set_performance_state()
  PM / Domains: Propagate performance state updates

 drivers/base/power/domain.c | 202 ++++++++++++++++++++++++++----------
 drivers/opp/core.c          |  63 +++++++++++
 drivers/opp/of.c            |  24 +++--
 include/linux/pm_domain.h   |   6 ++
 include/linux/pm_opp.h      |  13 ++-
 5 files changed, 242 insertions(+), 66 deletions(-)

-- 
2.19.1.568.g152ad8e3369a


             reply	other threads:[~2018-12-14 10:15 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-12-14 10:15 Viresh Kumar [this message]
2018-12-14 10:15 ` [PATCH V4 1/7] PM / Domains: Make genpd performance states orthogonal to the idlestates Viresh Kumar
2018-12-14 10:15 ` [PATCH V4 2/7] OPP: Improve _find_table_of_opp_np() Viresh Kumar
2018-12-14 10:40   ` Ulf Hansson
2018-12-14 10:15 ` [PATCH V4 3/7] OPP: Add dev_pm_opp_xlate_performance_state() helper Viresh Kumar
2018-12-14 10:40   ` Ulf Hansson
2018-12-14 10:15 ` [PATCH V4 4/7] OPP: Don't return 0 on error from of_get_required_opp_performance_state() Viresh Kumar
2018-12-14 10:40   ` Ulf Hansson
2018-12-14 10:15 ` [PATCH V4 5/7] PM / Domains: Save OPP table pointer in genpd Viresh Kumar
2018-12-14 10:40   ` Ulf Hansson
2018-12-14 10:15 ` [PATCH V4 6/7] PM / Domains: Factorize dev_pm_genpd_set_performance_state() Viresh Kumar
2018-12-14 10:40   ` Ulf Hansson
2018-12-14 10:47     ` Viresh Kumar
2018-12-14 10:15 ` [PATCH V4 7/7] PM / Domains: Propagate performance state updates Viresh Kumar
2018-12-14 10:40   ` Ulf Hansson
2018-12-14 10:18 ` [PATCH V4 0/7] PM / Domains: Allow performance state propagation Rafael J. Wysocki
2018-12-14 10:19   ` Viresh Kumar
2018-12-14 18:05 ` Stephen Boyd
2018-12-14 18:05   ` Stephen Boyd

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover.1544782279.git.viresh.kumar@linaro.org \
    --to=viresh.kumar@linaro.org \
    --cc=khilman@kernel.org \
    --cc=len.brown@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=niklas.cassel@linaro.org \
    --cc=nm@ti.com \
    --cc=pavel@ucw.cz \
    --cc=rjw@rjwysocki.net \
    --cc=rnayak@codeaurora.org \
    --cc=sboyd@kernel.org \
    --cc=ulf.hansson@linaro.org \
    --cc=vincent.guittot@linaro.org \
    --cc=vireshk@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.