allwinner: clk: Fix nm clock calculation
Use the right factor when finding the best frequency and compare the absolute value of the result. Submitted by: kibab MFC after: 3 days
This commit is contained in:
parent
18f67bc413
commit
738fc84a7a
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=363887
@ -151,7 +151,7 @@ aw_clk_nm_find_best(struct aw_clk_nm_sc *sc, uint64_t fparent, uint64_t *fout,
|
||||
min_n = aw_clk_factor_get_min(&sc->n);
|
||||
|
||||
for (m = min_m; m <= max_m; ) {
|
||||
for (n = min_m; n <= max_n; ) {
|
||||
for (n = min_n; n <= max_n; ) {
|
||||
cur = fparent / n / m;
|
||||
if (abs(*fout - cur) < abs(*fout - best)) {
|
||||
best = cur;
|
||||
@ -196,7 +196,7 @@ aw_clk_nm_set_freq(struct clknode *clk, uint64_t fparent, uint64_t *fout,
|
||||
clknode_get_freq(p_clk, &fparent);
|
||||
|
||||
cur = aw_clk_nm_find_best(sc, fparent, fout, &n, &m);
|
||||
if ((*fout - cur) < (*fout - best)) {
|
||||
if (abs((*fout - cur)) < abs((*fout - best))) {
|
||||
best = cur;
|
||||
best_parent = p_idx;
|
||||
best_n = n;
|
||||
|
Loading…
Reference in New Issue
Block a user