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

From: SÃren Brinkmann
Date: Thu May 22 2014 - 11:39:19 EST


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
> <soren.brinkmann@xxxxxxxxxx> 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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/