From: sboyd@codeaurora.org (Stephen Boyd)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v4 2/2] dt: power: st: Provide bindings for ST's OPPs
Date: Fri, 31 Jul 2015 09:37:15 -0700 [thread overview]
Message-ID: <20150731163715.GV3159@codeaurora.org> (raw)
In-Reply-To: <CAL_JsqKQLQ15qSt95zBZykzzPhcUrtZzhk29a76n+r_3719AiA@mail.gmail.com>
On 07/30, Rob Herring wrote:
> On Thu, Jul 30, 2015 at 3:46 AM, Lee Jones <lee.jones@linaro.org> wrote:
> >
> > There is nothing stopping us from representing the data in this way.
> > On the plus side, it would mean that we wouldn't need any vendor
> > specific properties. However, far outweighing the positives are the
> > fact that, even in our very simple example provided, where we only
> > have 2 frequencies, differ between only 1 cut and support all
> > substrates, we would still need 16 OPP tables. When any one of those
> > variables increase (and they will), we would then have a large number
> > of permutations and subsequently and unruly amount of OPP tables.
> >
> > (... and we haven't even provided the body-biasing information yet.)
> >
> > The way we've chosen to represent our circumstance is the least
> > intrusive and the most succinct way we can think of. Which IMHO
> > outweighs the fact that we have to introduce a couple of vendor
> > properties by a country mile.
>
> Regardless of which is better or worse, you are both doing essentially
> the same thing. You are selecting OPPs based on some Si parameters. We
> should not really be doing this 2 different ways. I'd be fine with 2
> ways if it was 2 for all SOCs, but right now it is 2 for 2 SOCs.
> Really, I'd like to see most if not all the selection or fixup of OPPs
> be done in the bootloader and the kernel just deals with the correct
> OPP table.
>
> Where are you storing the data that gets selected to fill into these
> properties? Is it just look-up tables or is there some kind of
> algorithm to generate the values? If the former, then DT is as good a
> data struct as any to store the tables. There is a lot of duplication
> though with only a single property varying in each set. If you both
> have that problem, then perhaps we can come up with a generic way to
> list all possible values more concisely.
For qcom platforms, the frequency is almost always constant.
There may be some tables where we have a couple higher
frequencies than others because the speed bin is different.
Otherwise the voltage/current is changing based on the silicon
characteristics. So the biggest duplication is the frequency
property.
As far as I know there isn't any algorithm to generate the
voltage values. It's all hand tuned tables based on the silicon
characterization, so we're left to store these tables in DT and
pick the right one at runtime. With regards to the table
explosion, on qcom platforms we haven't worried that we have ~40
tables, but I'm not opposed to expressing it in a smaller set of
nodes, tables, etc. if that's what's desired.
Do we need vendor specific properties for that though? Or do we
need some sort of extended frequency/voltage properties that are
arrays of values that we can index into based on some silicon
characteristics? I like the name based approach because it's
simple. Use this OPP table because it's called
x-y-z-characteristics and be done. Cramming the tables into less
lines may save us some typing and dtb space, but I'm not sure
what else it does.
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project
next prev parent reply other threads:[~2015-07-31 16:37 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-27 15:20 [PATCH v4 1/2] dt: cpufreq: st: Provide bindings for ST's CPUFreq implementation Lee Jones
2015-07-27 15:20 ` [PATCH v4 2/2] dt: power: st: Provide bindings for ST's OPPs Lee Jones
2015-07-28 2:29 ` Viresh Kumar
2015-07-28 7:34 ` Lee Jones
2015-07-28 7:47 ` Viresh Kumar
2015-07-28 8:30 ` Lee Jones
2015-07-28 22:55 ` Stephen Boyd
2015-07-29 8:14 ` Lee Jones
2015-07-29 22:15 ` Stephen Boyd
2015-07-30 8:46 ` Lee Jones
2015-07-30 16:16 ` Rob Herring
2015-07-31 16:37 ` Stephen Boyd [this message]
2015-08-01 11:36 ` Viresh Kumar
2015-08-03 3:46 ` Viresh Kumar
2015-08-10 13:22 ` Lee Jones
2015-08-11 8:00 ` Viresh Kumar
2015-08-11 9:30 ` Lee Jones
2015-08-11 10:09 ` Viresh Kumar
2015-08-11 11:54 ` Lee Jones
2015-08-11 12:01 ` Viresh Kumar
2015-08-11 13:27 ` Lee Jones
2015-08-11 14:28 ` Viresh Kumar
2015-08-11 15:17 ` Lee Jones
2015-08-12 11:08 ` Viresh Kumar
2015-08-26 12:06 ` Lee Jones
2015-09-02 8:06 ` Viresh Kumar
2015-09-02 18:58 ` Rob Herring
2015-09-09 6:27 ` Viresh Kumar
2015-09-09 7:59 ` Lee Jones
2015-09-09 8:30 ` Viresh Kumar
2015-09-09 13:39 ` Lee Jones
2015-09-09 16:02 ` Viresh Kumar
2015-09-09 16:36 ` Lee Jones
2015-09-09 23:50 ` Rob Herring
2015-09-10 0:57 ` Stephen Boyd
2015-09-10 1:04 ` Viresh Kumar
2015-09-10 8:31 ` Lee Jones
2015-09-16 4:33 ` Viresh Kumar
2015-09-16 6:52 ` Lee Jones
2015-07-28 13:55 ` Rob Herring
2015-07-28 14:39 ` Lee Jones
2015-07-28 15:35 ` Rob Herring
2015-07-28 15:43 ` Lee Jones
2015-07-28 2:23 ` [PATCH v4 1/2] dt: cpufreq: st: Provide bindings for ST's CPUFreq implementation Viresh Kumar
2015-07-28 7:41 ` Lee Jones
2015-07-28 7:50 ` Viresh Kumar
2015-07-28 8:35 ` Viresh Kumar
2015-07-28 8:55 ` Lee Jones
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=20150731163715.GV3159@codeaurora.org \
--to=sboyd@codeaurora.org \
--cc=linux-arm-kernel@lists.infradead.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).