public inbox for linux-clk@vger.kernel.org
 help / color / mirror / Atom feed
From: "Jernej Škrabec" <jernej.skrabec@siol.net>
To: Maxime Ripard <maxime.ripard@free-electrons.com>
Cc: airlied@linux.ie, robh+dt@kernel.org, mark.rutland@arm.com,
	wens@csie.org, architt@codeaurora.org, a.hajda@samsung.com,
	Laurent.pinchart@ideasonboard.com, mturquette@baylibre.com,
	sboyd@codeaurora.org, Jose.Abreu@synopsys.com,
	narmstrong@baylibre.com, dri-devel@lists.freedesktop.org,
	devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, linux-clk@vger.kernel.org,
	linux-sunxi@googlegroups.com
Subject: Re: [PATCH v3 02/12] clk: sunxi-ng: Change formula for NKMP PLLs
Date: Thu, 18 Jan 2018 17:17:45 +0100	[thread overview]
Message-ID: <4724479.MCcHYbe7Bl@jernej-laptop> (raw)
In-Reply-To: <20180118105841.73rwj3he2exd7pno@flea.lan>

Hi,

Dne =C4=8Detrtek, 18. januar 2018 ob 11:58:41 CET je Maxime Ripard napisal(=
a):
> Hi,
>=20
> On Wed, Jan 17, 2018 at 09:14:11PM +0100, Jernej Skrabec wrote:
> > This commit changes formula from this:
> >=20
> > Freq =3D (parent_freq * N * K) / (M * P)
> >=20
> > to this:
> >=20
> > Freq =3D (parent_freq / M) * N * K / P
> >=20
> > This improves situation when N is in the range 1-255. PLL parent clock
> > is almost always 24 MHz, which means that for N >=3D 180 original formu=
la
> > 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 resu=
lt
> > when M =3D 1 and N >=3D 180.
> >=20
> > 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.
> >=20
> > Signed-off-by: Jernej Skrabec <jernej.skrabec@siol.net>
>=20
> 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 :)
>=20
> What about using long long types for the parent * n * k result?

Yes, using long long is the best possible solution and covers all cases=20
whereas this patch does not.

I thought that do_div() would cause a lot of overhead, but I noticed that i=
t's=20
not big if both numbers fit in 32 bit, which in our case is true most of th=
e=20
time.

I will make a helper function for calculating rate, since using long long=20
needs more than one line of code.

Best regards,
Jernej

  reply	other threads:[~2018-01-18 16:17 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-01-17 20:14 [PATCH v3 00/12] drm/sun4i: Add A83T HDMI support Jernej Skrabec
2018-01-17 20:14 ` [PATCH v3 01/12] clk: sunxi-ng: Mask nkmp factors when setting register Jernej Skrabec
2018-01-18 10:53   ` Maxime Ripard
2018-01-17 20:14 ` [PATCH v3 02/12] clk: sunxi-ng: Change formula for NKMP PLLs Jernej Skrabec
2018-01-18 10:58   ` Maxime Ripard
2018-01-18 16:17     ` Jernej Škrabec [this message]
2018-01-17 20:14 ` [PATCH v3 03/12] drm/bridge/synopsys: dw-hdmi: Enable workaround for v1.32a Jernej Skrabec
2018-01-17 20:14 ` [PATCH v3 04/12] drm/bridge/synopsys: dw-hdmi: Export some PHY related functions Jernej Skrabec
2018-01-18 13:05   ` Neil Armstrong
2018-01-17 20:14 ` [PATCH v3 05/12] drm/bridge/synopsys: dw-hdmi: don't clobber drvdata Jernej Skrabec
2018-01-18 13:04   ` Neil Armstrong
2018-01-17 20:14 ` [PATCH v3 06/12] dt-bindings: display: sun4i-drm: Add A83T HDMI pipeline Jernej Skrabec
2018-01-29 18:05   ` Rob Herring
2018-01-29 18:08     ` [linux-sunxi] " Icenowy Zheng
2018-01-29 20:29     ` Jernej Škrabec
2018-01-17 20:14 ` [PATCH v3 07/12] drm/sun4i: Add has_channel_0 TCON quirk Jernej Skrabec
2018-01-17 20:14 ` [PATCH v3 08/12] drm/sun4i: Add support for A83T second TCON Jernej Skrabec
2018-01-17 20:14 ` [PATCH v3 09/12] drm/sun4i: Add support for A83T second DE2 mixer Jernej Skrabec
2018-01-17 20:14 ` [PATCH v3 10/12] drm/sun4i: Implement A83T HDMI driver Jernej Skrabec
2018-01-17 20:14 ` [PATCH v3 11/12] ARM: dts: sun8i: a83t: Add HDMI display pipeline Jernej Skrabec
2018-01-17 20:14 ` [PATCH v3 12/12] ARM: dts: sun8i: a83t: Enable HDMI on BananaPi M3 Jernej Skrabec

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=4724479.MCcHYbe7Bl@jernej-laptop \
    --to=jernej.skrabec@siol.net \
    --cc=Jose.Abreu@synopsys.com \
    --cc=Laurent.pinchart@ideasonboard.com \
    --cc=a.hajda@samsung.com \
    --cc=airlied@linux.ie \
    --cc=architt@codeaurora.org \
    --cc=devicetree@vger.kernel.org \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-clk@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-sunxi@googlegroups.com \
    --cc=mark.rutland@arm.com \
    --cc=maxime.ripard@free-electrons.com \
    --cc=mturquette@baylibre.com \
    --cc=narmstrong@baylibre.com \
    --cc=robh+dt@kernel.org \
    --cc=sboyd@codeaurora.org \
    --cc=wens@csie.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