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 18:06:56 +0100 [thread overview]
Message-ID: <20160610170656.GA23854@red-moon> (raw)
In-Reply-To: <20160610165248.GQ13357@hector.attlocal.net>
On Fri, Jun 10, 2016 at 11:52:48AM -0500, Andy Gross wrote:
[...]
> > (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)
>
> I'd think that you'd want the tick frozen. Even if you are going to
> just call the deepest freezable idle state in your freeze_function,
> you don't want to keep getting woken up as this costs some power usage
As I said, that's a separate issue from these bindings.
> > (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.
>
> It only requires having suspend_ops and a valid function. Otherwise
> you can never suspend and never exercise the freeze portion of the
> cpuidle code.
As I said, *currently* you have to call suspend_set_ops() to set
up the pm_states label for PM_SUSPEND_FREEZE, suspend_ops are
irrelevant to make suspend-to-idle work and as I said that's
related to core code rather than platform specific suspend ops.
We should solve issues, not work around them.
> > 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.
>
> If we had the facilities in the arm cpuidle driver then for 64 bit
> processors, I wouldn't have to do anything except provision my
> suspend_ops + valid function. For 32 bit, we actually already use
> this compat tag and I just have to add code in the spm driver (qcom
> cpuidle) to init the suspend_ops.
For 64-bit you do not have to have add any facility.
1) we should change core code to make PM_SUSPEND_FREEZE independent
of suspend_set_ops()
2) we should define which idle states are freezable (99% of them are
minus coupled idle states), through generic bindings
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 18:06:56 +0100 [thread overview]
Message-ID: <20160610170656.GA23854@red-moon> (raw)
In-Reply-To: <20160610165248.GQ13357@hector.attlocal.net>
On Fri, Jun 10, 2016 at 11:52:48AM -0500, Andy Gross wrote:
[...]
> > (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)
>
> I'd think that you'd want the tick frozen. Even if you are going to
> just call the deepest freezable idle state in your freeze_function,
> you don't want to keep getting woken up as this costs some power usage
As I said, that's a separate issue from these bindings.
> > (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.
>
> It only requires having suspend_ops and a valid function. Otherwise
> you can never suspend and never exercise the freeze portion of the
> cpuidle code.
As I said, *currently* you have to call suspend_set_ops() to set
up the pm_states label for PM_SUSPEND_FREEZE, suspend_ops are
irrelevant to make suspend-to-idle work and as I said that's
related to core code rather than platform specific suspend ops.
We should solve issues, not work around them.
> > 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.
>
> If we had the facilities in the arm cpuidle driver then for 64 bit
> processors, I wouldn't have to do anything except provision my
> suspend_ops + valid function. For 32 bit, we actually already use
> this compat tag and I just have to add code in the spm driver (qcom
> cpuidle) to init the suspend_ops.
For 64-bit you do not have to have add any facility.
1) we should change core code to make PM_SUSPEND_FREEZE independent
of suspend_set_ops()
2) we should define which idle states are freezable (99% of them are
minus coupled idle states), through generic bindings
Lorenzo
next prev parent reply other threads:[~2016-06-10 17:06 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
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 [this message]
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=20160610170656.GA23854@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.