[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <3ddba76f5f44a7b32c5852094667d189.sboyd@kernel.org>
Date: Sat, 16 Dec 2023 17:21:19 -0800
From: Stephen Boyd <sboyd@...nel.org>
To: Jay Buddhabhatti <jay.buddhabhatti@....com>, michal.simek@....com, mturquette@...libre.com, shubhrajyoti.datta@...inx.com
Cc: linux-clk@...r.kernel.org, linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org, Jay Buddhabhatti <jay.buddhabhatti@....com>
Subject: Re: [PATCH RESEND v2 1/2] drivers: clk: zynqmp: calculate closest mux rate
Quoting Jay Buddhabhatti (2023-11-29 03:29:15)
> Currently zynqmp clock driver is not calculating closest mux rate and
> because of that Linux is not setting proper frequency for CPU and
> not able to set given frequency for dynamic frequency scaling.
>
> E.g., In current logic initial acpu clock parent and frequency as below
> apll1 0 0 0 2199999978 0 0 50000 Y
> acpu0_mux 0 0 0 2199999978 0 0 50000 Y
> acpu0_idiv1 0 0 0 2199999978 0 0 50000 Y
> acpu0 0 0 0 2199999978 0 0 50000 Y
>
> After changing acpu frequency to 549999994 Hz using CPU freq scaling its
> selecting incorrect parent which is not closest frequency.
> rpll_to_xpd 0 0 0 1599999984 0 0 50000 Y
> acpu0_mux 0 0 0 1599999984 0 0 50000 Y
> acpu0_div1 0 0 0 533333328 0 0 50000 Y
> acpu0 0 0 0 533333328 0 0 50000 Y
>
> Parent should remain same since 549999994 = 2199999978 / 4.
>
> So use __clk_mux_determine_rate_closest() generic function to calculate
> closest rate for mux clock. After this change its selecting correct
> parent and correct clock rate.
> apll1 0 0 0 2199999978 0 0 50000 Y
> acpu0_mux 0 0 0 2199999978 0 0 50000 Y
> acpu0_div1 0 0 0 549999995 0 0 50000 Y
> acpu0 0 0 0 549999995 0 0 50000 Y
>
> Fixes: 3fde0e16d016 ("drivers: clk: Add ZynqMP clock driver")
> Signed-off-by: Jay Buddhabhatti <jay.buddhabhatti@....com>
> ---
Applied to clk-next
Powered by blists - more mailing lists