All of lore.kernel.org
 help / color / mirror / Atom feed
From: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
To: Andy Gross <andy.gross@linaro.org>
Cc: Mark Rutland <mark.rutland@arm.com>,
	linux-pm@vger.kernel.org, linux-arm-msm@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	stanimir.varbanov@linaro.org
Subject: Re: [PATCH 3/5] arm64: dts: msm8916: Add spc compat tag
Date: Fri, 10 Jun 2016 17:31:53 +0100	[thread overview]
Message-ID: <20160610163153.GA23743@red-moon> (raw)
In-Reply-To: <20160610161234.GO13357@hector.attlocal.net>

On Fri, Jun 10, 2016 at 11:12:34AM -0500, Andy Gross wrote:
> On Fri, Jun 10, 2016 at 04:48:57PM +0100, Mark Rutland wrote:
> > [+ Lorenzo]
> > 
> > On Thu, May 19, 2016 at 12:00:18AM -0500, Andy Gross wrote:
> > > This patch adds the qcom,idle-state-spc compatible to the SPC idle
> > > state.  This compatible indicates that the state is one which supports
> > > freeze.
> > > 
> > > Signed-off-by: Andy Gross <andy.gross@linaro.org>
> > > ---
> > >  arch/arm64/boot/dts/qcom/msm8916.dtsi | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > 
> > > diff --git a/arch/arm64/boot/dts/qcom/msm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8916.dtsi
> > > index 208af00..032e411 100644
> > > --- a/arch/arm64/boot/dts/qcom/msm8916.dtsi
> > > +++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi
> > > @@ -104,7 +104,7 @@
> > >  
> > >  		idle-states {
> > >  			CPU_SPC: spc {
> > > -				compatible = "arm,idle-state";
> > > +				compatible = "qcom,idle-state-spc", "arm,idle-state";
> > >  				arm,psci-suspend-param = <0x40000002>;
> > >  				entry-latency-us = <130>;
> > >  				exit-latency-us = <150>;
> > 
> > This looks suspicious.
> > 
> > This is a PSCI idle state, and we have a PSCI driver driven by the
> > generic ARM cpuidle driver.
> > 
> > Why do we need a qcom-specific compatible here?
> > 
> > Surely we should be able to use the idle code in a generic fashion to
> > driver suspend-to-idle?
> 
> We need a way to identify specific idle states that support
> suspend-to-idle.  In addition, when we have identified the states, we
> may have to configure the enter_freeze() function.
> 
> I chose to do this outside of the arm cpuidle driver because I didn't
> want to add any more DT information aside from the compatible, and I
> needed a separate place for the Qualcomm specific suspend code.  With
> the compatible, this makes my 32 and 64 bit processor suspend code
> identical, as we have our own cpuidle driver for the 32 bit procs.
> 
> An alternative would be to add some facilities to communicate this to
> the arm cpuidle driver and configure the enter_freeze() function at
> some later point.

(1) enter_freeze() hooks are not strictly necessary to enable
    suspend-to-idle (they are if we want the tick to be frozen
    on suspend-to-idle, which is different)
(2) If I understand your code correctly you have to set the suspend
    ops hook to make sure suspend-to-idle is enabled. This is a core
    code issue rather than anything else, given that suspend-to-idle
    (hey it is based on CPUidle !) does NOT rely on suspend ops to
    function.

So the gist is: as far as I am concerned you do not need any of this
code to enable (yes you need PSCI idle states but no
qcom,idle-state-spc compatible string whatsoever) suspend-to-idle
on ARM64 on top of PSCI, let me know what I am missing.

Thanks,
Lorenzo

WARNING: multiple messages have this Message-ID (diff)
From: lorenzo.pieralisi@arm.com (Lorenzo Pieralisi)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 3/5] arm64: dts: msm8916: Add spc compat tag
Date: Fri, 10 Jun 2016 17:31:53 +0100	[thread overview]
Message-ID: <20160610163153.GA23743@red-moon> (raw)
In-Reply-To: <20160610161234.GO13357@hector.attlocal.net>

On Fri, Jun 10, 2016 at 11:12:34AM -0500, Andy Gross wrote:
> On Fri, Jun 10, 2016 at 04:48:57PM +0100, Mark Rutland wrote:
> > [+ Lorenzo]
> > 
> > On Thu, May 19, 2016 at 12:00:18AM -0500, Andy Gross wrote:
> > > This patch adds the qcom,idle-state-spc compatible to the SPC idle
> > > state.  This compatible indicates that the state is one which supports
> > > freeze.
> > > 
> > > Signed-off-by: Andy Gross <andy.gross@linaro.org>
> > > ---
> > >  arch/arm64/boot/dts/qcom/msm8916.dtsi | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > > 
> > > diff --git a/arch/arm64/boot/dts/qcom/msm8916.dtsi b/arch/arm64/boot/dts/qcom/msm8916.dtsi
> > > index 208af00..032e411 100644
> > > --- a/arch/arm64/boot/dts/qcom/msm8916.dtsi
> > > +++ b/arch/arm64/boot/dts/qcom/msm8916.dtsi
> > > @@ -104,7 +104,7 @@
> > >  
> > >  		idle-states {
> > >  			CPU_SPC: spc {
> > > -				compatible = "arm,idle-state";
> > > +				compatible = "qcom,idle-state-spc", "arm,idle-state";
> > >  				arm,psci-suspend-param = <0x40000002>;
> > >  				entry-latency-us = <130>;
> > >  				exit-latency-us = <150>;
> > 
> > This looks suspicious.
> > 
> > This is a PSCI idle state, and we have a PSCI driver driven by the
> > generic ARM cpuidle driver.
> > 
> > Why do we need a qcom-specific compatible here?
> > 
> > Surely we should be able to use the idle code in a generic fashion to
> > driver suspend-to-idle?
> 
> We need a way to identify specific idle states that support
> suspend-to-idle.  In addition, when we have identified the states, we
> may have to configure the enter_freeze() function.
> 
> I chose to do this outside of the arm cpuidle driver because I didn't
> want to add any more DT information aside from the compatible, and I
> needed a separate place for the Qualcomm specific suspend code.  With
> the compatible, this makes my 32 and 64 bit processor suspend code
> identical, as we have our own cpuidle driver for the 32 bit procs.
> 
> An alternative would be to add some facilities to communicate this to
> the arm cpuidle driver and configure the enter_freeze() function at
> some later point.

(1) enter_freeze() hooks are not strictly necessary to enable
    suspend-to-idle (they are if we want the tick to be frozen
    on suspend-to-idle, which is different)
(2) If I understand your code correctly you have to set the suspend
    ops hook to make sure suspend-to-idle is enabled. This is a core
    code issue rather than anything else, given that suspend-to-idle
    (hey it is based on CPUidle !) does NOT rely on suspend ops to
    function.

So the gist is: as far as I am concerned you do not need any of this
code to enable (yes you need PSCI idle states but no
qcom,idle-state-spc compatible string whatsoever) suspend-to-idle
on ARM64 on top of PSCI, let me know what I am missing.

Thanks,
Lorenzo

  parent reply	other threads:[~2016-06-10 16:31 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-19  5:00 [PATCH 0/5] Qualcomm Suspend to Idle Support Andy Gross
2016-05-19  5:00 ` Andy Gross
2016-05-19  5:00 ` [PATCH 1/5] soc: qcom: Add suspend to idle support Andy Gross
2016-05-19  5:00   ` Andy Gross
2016-06-09  7:39   ` Ulf Hansson
2016-06-09  7:39     ` Ulf Hansson
2016-06-09 18:09     ` Andy Gross
2016-06-09 18:09       ` Andy Gross
2016-06-10  8:47       ` Ulf Hansson
2016-06-10  8:47         ` Ulf Hansson
2016-06-10 15:26         ` Andy Gross
2016-06-10 15:26           ` Andy Gross
2016-06-13 16:12       ` Daniel Lezcano
2016-06-13 16:12         ` Daniel Lezcano
2016-05-19  5:00 ` [PATCH 2/5] arm: defconfig: Enable PM8941 pwr key Andy Gross
2016-05-19  5:00   ` Andy Gross
2016-06-10 20:25   ` Bjorn Andersson
2016-06-10 20:25     ` Bjorn Andersson
2016-05-19  5:00 ` [PATCH 3/5] arm64: dts: msm8916: Add spc compat tag Andy Gross
2016-05-19  5:00   ` Andy Gross
2016-05-19 19:52   ` Stanimir Varbanov
2016-05-19 19:52     ` Stanimir Varbanov
2016-05-19 20:16     ` Andy Gross
2016-05-19 20:16       ` Andy Gross
2016-06-10 15:48   ` Mark Rutland
2016-06-10 15:48     ` Mark Rutland
2016-06-10 16:12     ` Andy Gross
2016-06-10 16:12       ` Andy Gross
2016-06-10 16:25       ` Mark Rutland
2016-06-10 16:25         ` Mark Rutland
2016-06-10 16:47         ` Andy Gross
2016-06-10 16:47           ` Andy Gross
2016-06-10 21:16           ` Lina Iyer
2016-06-10 21:16             ` Lina Iyer
2016-06-10 21:52             ` Andy Gross
2016-06-10 21:52               ` Andy Gross
2016-06-13 11:00           ` Mark Rutland
2016-06-13 11:00             ` Mark Rutland
2016-06-13 13:48             ` Lorenzo Pieralisi
2016-06-13 13:48               ` Lorenzo Pieralisi
2016-06-16  8:12               ` Andy Gross
2016-06-16  8:12                 ` Andy Gross
2016-06-10 16:31       ` Lorenzo Pieralisi [this message]
2016-06-10 16:31         ` Lorenzo Pieralisi
2016-06-10 16:52         ` Andy Gross
2016-06-10 16:52           ` Andy Gross
2016-06-10 17:06           ` Lorenzo Pieralisi
2016-06-10 17:06             ` Lorenzo Pieralisi
2016-06-10 17:27             ` Andy Gross
2016-06-10 17:27               ` Andy Gross
2016-06-10 20:59               ` Lorenzo Pieralisi
2016-06-10 20:59                 ` Lorenzo Pieralisi
2016-05-19  5:00 ` [PATCH 4/5] ARM: dts: qcom: Remove size elements from pmic reg Andy Gross
2016-05-19  5:00   ` Andy Gross
2016-06-10 20:26   ` Bjorn Andersson
2016-06-10 20:26     ` Bjorn Andersson
2016-05-19  5:00 ` [PATCH 5/5] ARM: dts: qcom: pma8084: Add pwrkey entry Andy Gross
2016-05-19  5:00   ` Andy Gross
2016-06-10 20:29   ` Bjorn Andersson
2016-06-10 20:29     ` Bjorn Andersson
2016-05-20  6:09 ` [PATCH 0/5] Qualcomm Suspend to Idle Support Pramod Gurav
2016-05-20  6:09   ` Pramod Gurav

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=20160610163153.GA23743@red-moon \
    --to=lorenzo.pieralisi@arm.com \
    --cc=andy.gross@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-arm-msm@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=stanimir.varbanov@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 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.