Skip to content

Commit

Permalink
clk: analogbits: Fix incorrect calculation of vco rate delta
Browse files Browse the repository at this point in the history
In wrpll_configure_for_rate() we try to determine the best PLL
configuration for a target rate. However, in the loop where we try
values of R, we should compare the derived `vco` with `target_vco_rate`.
However, we were in fact comparing it with `target_rate`, which is
actually after Q shift. This is incorrect, and sometimes can result in
suboptimal clock rates. Fix it.

Fixes: 7b9487a ("clk: analogbits: add Wide-Range PLL library")
Signed-off-by: Bo Gan <[email protected]>
Link: https://lore.kernel.org/r/[email protected]
Signed-off-by: Stephen Boyd <[email protected]>
  • Loading branch information
ganboing authored and bebarino committed Jan 16, 2025
1 parent ab9f0d0 commit d7f1285
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion drivers/clk/analogbits/wrpll-cln28hpc.c
Original file line number Diff line number Diff line change
Expand Up @@ -292,7 +292,7 @@ int wrpll_configure_for_rate(struct wrpll_cfg *c, u32 target_rate,
vco = vco_pre * f;
}

delta = abs(target_rate - vco);
delta = abs(target_vco_rate - vco);
if (delta < best_delta) {
best_delta = delta;
best_r = r;
Expand Down

0 comments on commit d7f1285

Please sign in to comment.