Re: [RFC] Migrate to Hz resolution for OPP binding

2014-05-22 Thread Sören Brinkmann
Hi Rob,

On Thu, 2014-05-22 at 08:27AM -0500, Rob Herring wrote:
> On Tue, May 20, 2014 at 5:30 PM, Sören Brinkmann
>  wrote:
> > Hi,
> >
> > I guess this is just to evaluate how big the lynch mob will be. Anyway:
> > Triggered by this discussion https://lkml.org/lkml/2014/5/15/46, I
> > looked a little into what it would take to migrate everybody to Hz
> > frequency resolutions to avoid all the conversions between cpufreq, CCF,
> > OPPs, etc.
> > Turns out, OPPs are already stored in Hz resolution in the kernel, but the 
> > DT
> > bindings use kHz resolution to specify them in DT. So, code-wise there
> > is just a removal of a multiplication in the OPP parser (see below), but
> > then there are the DT bindings...
> 
> Add this to the list of issues with the current OPP binding and define
> a new binding, not a band-aid.
> 
> > As plan B, I was thinking to add the property 'operating-points-hz'...
> >
> > Any better ideas?
> 
> Fix clk_round_rate to specify how you want to round. There are
> usecases for both rounding up and down. Don't you have the same
> rounding problem with hz? Assume the person filling in OPP values
> knows nothing about the kernel and you could have values rounded both
> ways.

Yes the issue would not be resolved by this alone. But currently the CCF
and OPPs in the kernel use Hz. And if you look at the interaction
between those frameworks with cpufreq, there are plenty of
multiplications/divisions by 1000 to convert between those, with even a
greater loss of accuracy. So, I think agreeing on using Hz as smallest
reasonable frequency resolution across all these frameworks would be a
first step into the right direction.

Thanks,
Sören
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC] Migrate to Hz resolution for OPP binding

2014-05-22 Thread Rob Herring
On Tue, May 20, 2014 at 5:30 PM, Sören Brinkmann
 wrote:
> Hi,
>
> I guess this is just to evaluate how big the lynch mob will be. Anyway:
> Triggered by this discussion https://lkml.org/lkml/2014/5/15/46, I
> looked a little into what it would take to migrate everybody to Hz
> frequency resolutions to avoid all the conversions between cpufreq, CCF,
> OPPs, etc.
> Turns out, OPPs are already stored in Hz resolution in the kernel, but the DT
> bindings use kHz resolution to specify them in DT. So, code-wise there
> is just a removal of a multiplication in the OPP parser (see below), but
> then there are the DT bindings...

Add this to the list of issues with the current OPP binding and define
a new binding, not a band-aid.

> As plan B, I was thinking to add the property 'operating-points-hz'...
>
> Any better ideas?

Fix clk_round_rate to specify how you want to round. There are
usecases for both rounding up and down. Don't you have the same
rounding problem with hz? Assume the person filling in OPP values
knows nothing about the kernel and you could have values rounded both
ways.

Rob
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC] Migrate to Hz resolution for OPP binding

2014-05-21 Thread Pavel Machek

> > As plan B, I was thinking to add the property 'operating-points-hz'...
> >
> > Any better ideas?
> 
> property operating-points-hz as a bool perhaps -> that modifies the
> description and maintains legacy dtb support sounds OK to me if DT
> folks and Rafael are ok with it as well.

That should like a terrible hack :-(.

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) 
http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


Re: [RFC] Migrate to Hz resolution for OPP binding

2014-05-20 Thread Nishanth Menon
On Tue, May 20, 2014 at 5:30 PM, Sören Brinkmann
 wrote:
> Hi,
>
> I guess this is just to evaluate how big the lynch mob will be. Anyway:
> Triggered by this discussion https://lkml.org/lkml/2014/5/15/46, I
> looked a little into what it would take to migrate everybody to Hz
> frequency resolutions to avoid all the conversions between cpufreq, CCF,
> OPPs, etc.
> Turns out, OPPs are already stored in Hz resolution in the kernel, but the DT
> bindings use kHz resolution to specify them in DT. So, code-wise there
> is just a removal of a multiplication in the OPP parser (see below), but
> then there are the DT bindings...

Yep :( unfortunately, so :(

>
> As plan B, I was thinking to add the property 'operating-points-hz'...
>
> Any better ideas?

property operating-points-hz as a bool perhaps -> that modifies the
description and maintains legacy dtb support sounds OK to me if DT
folks and Rafael are ok with it as well.

Regards,
Nishanth Menon
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


[RFC] Migrate to Hz resolution for OPP binding

2014-05-20 Thread Sören Brinkmann
Hi,

I guess this is just to evaluate how big the lynch mob will be. Anyway:
Triggered by this discussion https://lkml.org/lkml/2014/5/15/46, I
looked a little into what it would take to migrate everybody to Hz
frequency resolutions to avoid all the conversions between cpufreq, CCF,
OPPs, etc.
Turns out, OPPs are already stored in Hz resolution in the kernel, but the DT
bindings use kHz resolution to specify them in DT. So, code-wise there
is just a removal of a multiplication in the OPP parser (see below), but
then there are the DT bindings...

As plan B, I was thinking to add the property 'operating-points-hz'...

Any better ideas?


diff --git a/drivers/base/power/opp.c b/drivers/base/power/opp.c
index 25538675d59e..61795111e8ca 100644
--- a/drivers/base/power/opp.c
+++ b/drivers/base/power/opp.c
@@ -731,7 +731,7 @@ int of_init_opp_table(struct device *dev)
 
val = prop->value;
while (nr) {
-   unsigned long freq = be32_to_cpup(val++) * 1000;
+   unsigned long freq = be32_to_cpup(val++);
unsigned long volt = be32_to_cpup(val++);
 
if (dev_pm_opp_add(dev, freq, volt)) {


Thanks,
Sören

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/