diff options
author | Emmanuel Vadot <manu@FreeBSD.org> | 2020-08-05 08:31:26 +0000 |
---|---|---|
committer | Emmanuel Vadot <manu@FreeBSD.org> | 2020-08-05 08:31:26 +0000 |
commit | 738fc84a7a946937fd3579fb94264973459cda52 (patch) | |
tree | 60f8d9f871d875048345eb48e142e03801b3d5f9 /sys/arm | |
parent | 18f67bc413e8a4e6b313c023e8612603f1ea17c0 (diff) | |
download | src-738fc84a7a946937fd3579fb94264973459cda52.tar.gz src-738fc84a7a946937fd3579fb94264973459cda52.zip |
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
Notes
Notes:
svn path=/head/; revision=363887
Diffstat (limited to 'sys/arm')
-rw-r--r-- | sys/arm/allwinner/clkng/aw_clk_nm.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/arm/allwinner/clkng/aw_clk_nm.c b/sys/arm/allwinner/clkng/aw_clk_nm.c index dc560cca5622..27caf3374266 100644 --- a/sys/arm/allwinner/clkng/aw_clk_nm.c +++ b/sys/arm/allwinner/clkng/aw_clk_nm.c @@ -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; |