From: Daniel Lezcano <daniel.lezcano@linaro.org>
To: Ulf Hansson <ulf.hansson@linaro.org>
Cc: robh@kernel.org, arnd@linaro.org, heiko@sntech.de,
rjw@rjwysocki.net, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org,
lukasz.luba@arm.com, Arnd Bergmann <arnd@arndb.de>,
Rob Herring <robh+dt@kernel.org>
Subject: Re: [PATCH 1/5] dt-bindings: Powerzone new bindings
Date: Wed, 24 Nov 2021 17:26:34 +0100 [thread overview]
Message-ID: <65873f24-46da-07f4-9661-e3f1001a4fa2@linaro.org> (raw)
In-Reply-To: <CAPDyKFpJHzAxGk=Y52VXcuVbAunwfMo2ErnwXMqnxzHPs6O30g@mail.gmail.com>
Hi Ulf,
thanks for the review
On 24/11/2021 15:54, Ulf Hansson wrote:
[ ... ]
>> + This description is done via a hierarchy and the DT reflects it. It
>> + does not represent the physical location or a topology, eg. on a
>> + big.Little system, the little CPUs may not be represented as they do
>> + not contribute significantly to the heat, however the GPU can be
>> + tied with the big CPUs as they usually have a connection for
>> + multimedia or game workloads.
>> +
>> +properties:
>> + $nodename:
>> + const: powerzones
>> +
>
> Do we really need a top-node like this? Can't that be left as a
> platform/soc specific thing instead? Along the lines of how the last
> example below looks like? Maybe we can have both options? I guess Rob
> will tell us.
Do you mean a compatible string?
> Moreover, maybe we should put some constraints on the names of
> subnodes (provider nodes) with a "patternProperties". Something along
> the lines of below.
>
> patternProperties:
> "^(powerzone)([@-].*)?$":
> type: object
> description:
> Each node represents a powerzone.
Sure
>> + "#powerzone-cells":
>> + description:
>> + Number of cells in powerzone specifier. Typically 0 for nodes
>> + representing but it can be any number in the future to describe
>> + parameters of the powerzone.
>> +
>> + powerzone:
>
> Maybe "powerzones" instead of "powerzone". Unless we believe that we
> never need to allow multiple parent-zones for a child-zone.
May be that could be needed in the future. No objection to rename it to
'powerzones'.
>> + description:
>> + A phandle to a parent powerzone. If no powerzone attribute is set, the
>> + described powerzone is the topmost in the hierarchy.
>> +
>
> We should probably state that the "#powerzone-cells" are required. Like below:
>
> required:
> - "#powerzone-cells"
Ok
> Moreover, we probably need to allow additional properties? At least it
> looks so from the last example below. Then:
>
> additionalProperties: true
I was unsure about adding it. With the actual description what would be
the benefit ?
>> +examples:
>> + - |
>> + powerzones {
>> +
>> + SOC_PZ: soc {
>> + };
>
> This looks odd to me.
>
> Why do we need an empty node? If this is the topmost power-zone,
Yes it is
> it
> should still have the #powerzone-cells specifier, I think.
Ok, makes sense
>> +
>> + PKG_PZ: pkg {
>
> As I stated above, I would prefer some kind of common pattern of the
> subnode names. Maybe "pkg-powerzone"?
Ok, may be 'powerzone-pkg' to be consistent with the power-domains pattern?
>> + #powerzone-cells = <0>;
>> + powerzone = <&SOC_PZ>;
>> + };
>> +
>> + BIG_PZ: big {
>> + #powerzone-cells = <0>;
>> + powerzone = <&PKG_PZ>;
>> + };
>> +
>> + GPU_PZ: gpu {
>> + #powerzone-cells = <0>;
>> + powerzone = <&PKG_PZ>;
>> + };
>> +
>> + MULTIMEDIA_PZ: multimedia {
>> + #powerzone-cells = <0>;
>> + powerzone = <&SOC_PZ>;
>> + };
>> + };
>> +
>> + - |
>> + A57_0: big@0 {
>> + compatible = "arm,cortex-a57";
>> + reg = <0x0 0x0>;
>> + device_type = "cpu";
>> + #powerzone-cells = <0>;
>> + powerzone = <&BIG_PZ>;
>
> Just to make sure I understand correctly. The big@0 node is a
> powerzone provider too? Or did you mean to specify it as a consumer?
I'm not sure 'provider' or 'consumer' make sense in this context.
big@0 is a powerzone we can act on and its parent is the BIG_PZ powerzone.
However this description is correct but confusing.
Given big@0 and big@1 belong to the big 'cluster' and when we act on the
performance state of big@0, big@1 is also changed, the correct
description would be:
A57_0: big@0 {
compatible = "arm,cortex-a57";
reg = <0x0 0x0>;
device_type = "cpu";
#powerzone-cells = <0>;
powerzone = <&PKG_PZ>;
};
A57_1: big@1 {
compatible = "arm,cortex-a57";
reg = <0x0 0x0>;
device_type = "cpu";
#powerzone-cells = <0>;
powerzone = <&PKG_PZ>;
};
If in the future, there will be a performance domain per core, then the
former description above would make sense.
--
<http://www.linaro.org/> Linaro.org │ Open source software for ARM SoCs
Follow Linaro: <http://www.facebook.com/pages/Linaro> Facebook |
<http://twitter.com/#!/linaroorg> Twitter |
<http://www.linaro.org/linaro-blog/> Blog
next prev parent reply other threads:[~2021-11-24 16:26 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-24 12:55 Daniel Lezcano
2021-11-24 12:55 ` [PATCH 2/5] arm64: dts: rockchip: Add powerzones definition for rock960 Daniel Lezcano
2021-11-24 13:49 ` Robin Murphy
2021-11-24 16:41 ` Daniel Lezcano
2021-11-24 16:52 ` Heiko Stübner
2021-11-24 12:55 ` [PATCH 3/5] powercap/drivers/dtpm: Add DT initialization support Daniel Lezcano
2021-11-24 12:55 ` [PATCH 4/5] powercap/drivers/dtpm: Add CPU " Daniel Lezcano
2021-11-24 12:55 ` [PATCH 5/5] powercap/drivers/dtpm: Add dtpm devfreq with energy model support Daniel Lezcano
2021-11-24 14:54 ` [PATCH 1/5] dt-bindings: Powerzone new bindings Ulf Hansson
2021-11-24 16:26 ` Daniel Lezcano [this message]
2021-11-24 19:17 ` Ulf Hansson
2021-11-25 21:26 ` Rob Herring
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=65873f24-46da-07f4-9661-e3f1001a4fa2@linaro.org \
--to=daniel.lezcano@linaro.org \
--cc=arnd@arndb.de \
--cc=arnd@linaro.org \
--cc=devicetree@vger.kernel.org \
--cc=heiko@sntech.de \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=lukasz.luba@arm.com \
--cc=rjw@rjwysocki.net \
--cc=robh+dt@kernel.org \
--cc=robh@kernel.org \
--cc=ulf.hansson@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
all inboxes | Powered by JetHome®