Re: [PATCH v5 02/16] dt/bindings: Update binding for PM domain idle states

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On Wed, Sep 14 2016 at 04:18 -0600, Brendan Jackman wrote:

On Tue, Sep 13 2016 at 20:38, Lina Iyer wrote:
On Tue, Sep 13 2016 at 11:50 -0600, Brendan Jackman wrote:

On Mon, Sep 12 2016 at 18:09, Sudeep Holla wrote:
On 12/09/16 17:16, Lina Iyer wrote:
On Mon, Sep 12 2016 at 09:19 -0600, Brendan Jackman wrote:

Hi Lina,

Sorry for the delay here, Sudeep and I were both been on holiday last
week.

On Fri, Sep 02 2016 at 21:16, Lina Iyer wrote:
On Fri, Sep 02 2016 at 07:21 -0700, Sudeep Holla wrote:
[...]
This version is *not very descriptive*. Also the discussion we had
on v3
version has not yet concluded IMO. So can I take that we agreed on what
was proposed there or not ?

Sorry, this example is not very descriptive. Pls. check the 8916 dtsi
for the new changes in the following patches. Let me know if that makes
sense.

Please add all possible use-cases in the bindings. Though one can refer
the usage examples, it might not cover all usage descriptions. It helps
preventing people from defining their own when they don't see examples.
Again DT bindings are like specifications, it should be descriptive
especially this kind of generic ones.


The not-yet-concluded discussion Sudeep is referring to is at [1].

In that thread we initially proposed the idea of, instead of splitting
state phandles between cpu-idle-states and domain-idle-states, putting
CPUs in their own domains and using domain-idle-states for _all_
phandles, deprecating cpu-idle-states. I've brought this up in other
threads [2] but discussion keeps petering out, and neither this example
nor the 8916 dtsi in this patch series reflect the idea.

Brendan, while your idea is good and will work for CPUs, I do not expect
other domains and possibly CPU domains on some architectures to follow
this model. There is nothing that prevents you from doing this today,

As I understand it your opposition to this approach is this:

There may be devices/CPUs which have idle states which do not constitute
"power off". If we put those  devices in their own power domain for the
purpose of putting their (non-power-off) idle state phandles in
domain-idle-states, we are "lying" because no true power domain exists
there.

Am I correct that that's your opposition?

If so, it seems we essentially disagree on the definition of a power
domain, i.e. you define it as a set of devices that are powered on/off
together while I define it as a set of devices whose power states
(including idle states, not just on/off) are tied together. I said
something similar on another thread [1] which died out.

Do you agree that this is basically where we disagree, or am I missing
something else?

[2] http://www.spinics.net/lists/devicetree/msg141050.html

Yes, you are right, I disagree with the definition of a domain around a
device.
OK, great.
However, as long as you don't force SoC's to define devices in
the CPU PM domain to have their own virtual domains, I have no problem.
You are welcome to define it the way you want for Juno or any other
platform.
I don't think that's true; the bindings have to work the same way for
all platforms. If for Juno we put CPU idle state phandles in a
domain-idle-states property for per-CPU domains then, with the current
implementation, the CPU-level idle states would be duplicated between
cpuidle and the CPU PM domains.

We don't have the code today. Your patches would add the functionality
of parsing domain idle states and attaching them to cpu-idle-states if
the firmware support and the mode is Platform-coordinated. And that
functionality is an easy addition. Nobody is making this change to
platforms with PC to use the CPU PM domains yet.
What you are referring to is just a convergence PC and OSI to use
the same domain hierarchy. This definition is not impacted by your desire. I have my own doubts of defining PC domains this way, but I
would leave that to you to submit the relevant RFC and bring forth the
discussion. (Per DT, the definition of PC domain states is already
immutable from how it is defined today in DT. You have to be careful in
breaking it up.)

I don't want that to be the forced and expected out of all
SoCs. All I am saying here is that the current implementation would
handle your case as well.

The current implementation certainly does cover the work I want to
do. The suggestion of per-device power domains for devices/CPUs with
their own idle states is simply intended to minimise the binding design,
since we'd no longer need cpu-idle-states or device-idle-states
(the latter was proposed elsewhere).

I am fine with the bindings as they are implemented currently so long
as:

- The binding doc makes clear how idle state phandles should be split
 between cpu-idle-states and domain-idle-states. It should make it
 obvious that no phandle should ever appear in both properties. It
 would even be worth briefly going over the backward-compatibility
 implications (e.g. what happens with old-kernel/new-DT and
 new-kernel/old-DT combos if a platform has OSI and PC support and we
 move cluster-level idle state phandles out of cpu-idle-states and into
 domai-idle-states).

Since, I have been only defining OSI initiated PM domains, this is not a
problem. I have clearly distinguished the explanation to be OSI
specific, for now.

- We have a reason against the definition of power domains as "a set of
 devices bound by a common power (including idle) state", since that
 definition would simplify the bindings. In my view, "nobody thinks
 that's what a power domain is" _is_ a compelling reason, so if others
 on the list get involved I'm convinced. I think I speak for Sudeep
 here too.


Look outside the context of the CPU - a generic PM domain is collective
of generic devices that share the same power island. A PM Domain may
also have other domains as sub-domains as well. So it is exactly that.
A CPU is just a specialized device.

Hope this helps.

Thanks,
Lina
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]
  Powered by Linux