linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Lina Iyer <ilina@codeaurora.org>
To: David Collins <collinsd@codeaurora.org>
Cc: Rajendra Nayak <rnayak@codeaurora.org>,
	viresh.kumar@linaro.org, sboyd@kernel.org, andy.gross@linaro.org,
	ulf.hansson@linaro.org, devicetree@vger.kernel.org,
	linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 5/6] soc: qcom: rpmh powerdomain driver
Date: Wed, 13 Jun 2018 12:29:00 -0600	[thread overview]
Message-ID: <20180613182900.GB22824@codeaurora.org> (raw)
In-Reply-To: <215deee5-6472-d587-9a90-f7158162ed82@codeaurora.org>

On Fri, May 25 2018 at 19:08 -0600, David Collins wrote:
>Hello Rajendra,
>
>On 05/25/2018 03:01 AM, Rajendra Nayak wrote:
>> +
>> +	to_active_sleep(pd, pd->corner, &this_corner, &this_sleep_corner);
>> +
>> +	if (peer && peer->enabled)
>> +		to_active_sleep(peer, peer->corner, &peer_corner,
>> +				&peer_sleep_corner);
>> +
>> +	active_corner = max(this_corner, peer_corner);
>> +
>> +	ret = rpmhpd_send_corner(pd, RPMH_ACTIVE_ONLY_STATE, active_corner);
>> +	if (ret)
>> +		return ret;
>> +
>> +	sleep_corner = max(this_sleep_corner, peer_sleep_corner);
>> +
>> +	return rpmhpd_send_corner(pd, RPMH_SLEEP_STATE, sleep_corner);
>> +}
>
>This aggregation function as well as the rpmhpd_send_corner() calls below
>are not sufficient for RPMh.  There are 3 states that must all be used:
>RPMH_ACTIVE_ONLY_STATE, RPMH_WAKE_ONLY_STATE, and RPMH_SLEEP_STATE.  The
>naming is somewhat confusing as rpmhpd is defining a different concept of
>active-only.
>
>For power domains without active-only or peers, only
>RPMH_ACTIVE_ONLY_STATE should be used.  This instructs RPMh to issue the
>request immediately.
>
>For power domains with active-only, requests will need to be made for all
>three.  active_corner would be sent for both RPMH_ACTIVE_ONLY_STATE (so
>that the request takes effect immediately) and RPMH_WAKE_ONLY_STATE (so
>that the request is inserted into the wake TCS).  sleep_corner would be
>sent for RPMH_SLEEP_STATE (so that the request is inserted into the sleep
>TCS).
>
>You can see how this is handled in the RPMh clock driver in patch [3].
>
>You may be able to get away with using only RPMH_SLEEP_STATE and
>RPMH_ACTIVE_ONLY_STATE assuming that you issue the RPMH_SLEEP_STATE
>request first due to the rpmh driver caching behavior added in the
>cache_rpm_request() function in [4].  However, could you please confirm
>with Lina that this usage will continue to work in the future?  I'm not
>sure what guarantees are made at the rpmh API level.
>
We expect to cache all active values into wake if there was a sleep
value already defined. Expect to continue this behavior in the future
as well. But it would be safer for you to send sleep and wake votes in
addition to active votes. It shouldn't add too much of an overhead.

-- Lina


  parent reply	other threads:[~2018-06-13 18:29 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-05-25 10:01 [PATCH v2 0/6] Add powerdomain driver for corners on msm8996/sdm845 Rajendra Nayak
2018-05-25 10:01 ` [PATCH v2 1/6] soc: qcom: rpmpd: Add a powerdomain driver to model corners Rajendra Nayak
2018-05-30  9:17   ` Ulf Hansson
2018-05-30 10:14     ` Rajendra Nayak
2018-05-30 12:44       ` Ulf Hansson
2018-05-31  4:20         ` Rajendra Nayak
2018-05-31 11:09           ` Ulf Hansson
2018-05-30 18:27       ` David Collins
2018-05-31  3:53         ` Rajendra Nayak
2018-05-31  3:27   ` Rob Herring
2018-05-31  4:14     ` Rajendra Nayak
2018-05-25 10:01 ` [PATCH v2 2/6] dt-bindings: opp: Introduce qcom-opp bindings Rajendra Nayak
2018-05-25 22:33   ` David Collins
2018-05-29  9:49     ` Rajendra Nayak
2018-05-25 10:01 ` [PATCH v2 3/6] soc: qcom: rpmpd: Add support for get/set performance state Rajendra Nayak
2018-05-25 10:01 ` [PATCH v2 4/6] arm64: dts: msm8996: Add rpmpd device node Rajendra Nayak
2018-05-25 10:01 ` [PATCH v2 5/6] soc: qcom: rpmh powerdomain driver Rajendra Nayak
2018-05-26  1:08   ` David Collins
2018-05-29 10:19     ` Rajendra Nayak
2018-05-29 19:03       ` David Collins
2018-05-30  8:55       ` Rajendra Nayak
2018-05-30  9:44         ` Viresh Kumar
2018-05-30 10:07           ` Rajendra Nayak
2018-06-01  8:48     ` Rajendra Nayak
2018-06-01 19:19       ` David Collins
2018-06-13 18:29     ` Lina Iyer [this message]
2018-05-31  3:31   ` Rob Herring
2018-05-31  4:15     ` Rajendra Nayak
2018-05-25 10:01 ` [PATCH v2 6/6] soc: qcom: rpmpd/rpmhpd: Add a max vote on all corners at init Rajendra Nayak

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=20180613182900.GB22824@codeaurora.org \
    --to=ilina@codeaurora.org \
    --cc=andy.gross@linaro.org \
    --cc=collinsd@codeaurora.org \
    --cc=devicetree@vger.kernel.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rnayak@codeaurora.org \
    --cc=sboyd@kernel.org \
    --cc=ulf.hansson@linaro.org \
    --cc=viresh.kumar@linaro.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).