[PATCH] clk: zynqmp: pll: Fix divider calculation to avoid out-of-range rate
Maxime Ripard
maxime at cerno.tech
Sat Oct 1 03:40:01 PDT 2022
Hi
On Fri, Sep 30, 2022 at 05:05:01PM -0700, Stephen Boyd wrote:
> +Maxime
>
> Quoting Quanyang Wang (2022-09-28 18:05:10)
> > Hi Laurent,
> >
> > I have sent a patch as below to fix this issue which set rate failed and
> > it's in linux-next repo now.
> >
> > https://lore.kernel.org/linux-arm-kernel/20220826142030.213805-1-quanyang.wang@windriver.com/T/
> >
It looks to me that the fundamental issue is that, in some situations,
the round_rate implementation can return a rate outside of the
boundaries enforced on a clock.
I think that's the current behaviour (that was there prior to my
patches) to reject any rate outside of the boundaries in
clk_calc_new_rates() makes it clear that it's not something we should
allow.
I'm a bit two-minded on this though. All the failures of that test I've
seen actually turned out to be bugs, so I guess it's useful, but it's
also true that for rounding errors it's a bit overkill. We could also
relax that check and warn instead of failing.
> > As for the frequency gap between the requested rate and the actual, it's
> > because of the commit:
> >
> > commit 948fb0969eae8
> > Author: Maxime Ripard <maxime at cerno.tech>
> > Date: Fri Feb 25 15:35:26 2022 +0100
> >
> > clk: Always clamp the rounded rate
> >
> > And I haven't figured out how to fix it.
Again, it boils down on whether or not we should allow a rate outside of
boundaries. If we don't and if the clock can't do better, then yeah, the
rate difference is fairly big but we can't do better.
> Maxime has some more patches to fix this and they're in linux-next.
> Maybe those fix this problem?
I don't think they will fix it. However, depending on the outcome of
that discussion I can send more fixes your way :)
Maxime
More information about the linux-arm-kernel
mailing list