[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20180118105841.73rwj3he2exd7pno@flea.lan>
Date: Thu, 18 Jan 2018 11:58:41 +0100
From: Maxime Ripard <maxime.ripard@...e-electrons.com>
To: Jernej Skrabec <jernej.skrabec@...l.net>
Cc: airlied@...ux.ie, robh+dt@...nel.org, mark.rutland@....com,
wens@...e.org, architt@...eaurora.org, a.hajda@...sung.com,
Laurent.pinchart@...asonboard.com, mturquette@...libre.com,
sboyd@...eaurora.org, Jose.Abreu@...opsys.com,
narmstrong@...libre.com, dri-devel@...ts.freedesktop.org,
devicetree@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org, linux-clk@...r.kernel.org,
linux-sunxi@...glegroups.com
Subject: Re: [PATCH v3 02/12] clk: sunxi-ng: Change formula for NKMP PLLs
Hi,
On Wed, Jan 17, 2018 at 09:14:11PM +0100, Jernej Skrabec wrote:
> This commit changes formula from this:
>
> Freq = (parent_freq * N * K) / (M * P)
>
> to this:
>
> Freq = (parent_freq / M) * N * K / P
>
> This improves situation when N is in the range 1-255. PLL parent clock
> is almost always 24 MHz, which means that for N >= 180 original formula
> overflows and result becomes useless. Situation can be improved if M is
> used as predivider as it can be seen in the second formula. That way at
> least M > 1 is considered, but it still leaves small gap for wrong result
> when M = 1 and N >= 180.
>
> Using M as predivider shouldn't cause any issue, because it is in range
> 1-4 at most, so there is no or only minimal rounding error.
>
> Signed-off-by: Jernej Skrabec <jernej.skrabec@...l.net>
I'd really prefer to stick to the formula documented and that we've
used so far. NKMP clocks are most notably used for the CPU PLLs and
I've debugged way too many cpufreq bugs already :)
What about using long long types for the parent * n * k result?
Maxime
--
Maxime Ripard, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
Download attachment "signature.asc" of type "application/pgp-signature" (834 bytes)
Powered by blists - more mailing lists