Changeset View
Changeset View
Standalone View
Standalone View
sys/arm/allwinner/clkng/aw_clk_nm.c
Show First 20 Lines • Show All 154 Lines • ▼ Show 20 Lines | for (m = min_m; m <= max_m; ) { | ||||
for (n = min_m; n <= max_n; ) { | for (n = min_m; n <= max_n; ) { | ||||
cur = fparent / n / m; | cur = fparent / n / m; | ||||
if ((*fout - cur) < (*fout - best)) { | if ((*fout - cur) < (*fout - best)) { | ||||
best = cur; | best = cur; | ||||
*factor_n = n; | *factor_n = n; | ||||
*factor_m = m; | *factor_m = m; | ||||
} | } | ||||
if ((sc->n.flags & AW_CLK_FACTOR_POWER_OF_TWO) != 0) | n = aw_clk_factor_get_incremented(n, &sc->n); | ||||
n <<= 1; | |||||
else | |||||
n++; | |||||
} | } | ||||
if ((sc->m.flags & AW_CLK_FACTOR_POWER_OF_TWO) != 0) | m = aw_clk_factor_get_incremented(m, &sc->m); | ||||
m <<= 1; | |||||
else | |||||
m++; | |||||
} | } | ||||
return (best); | return (best); | ||||
} | } | ||||
static int | static int | ||||
aw_clk_nm_set_freq(struct clknode *clk, uint64_t fparent, uint64_t *fout, | aw_clk_nm_set_freq(struct clknode *clk, uint64_t fparent, uint64_t *fout, | ||||
int flags, int *stop) | int flags, int *stop) | ||||
▲ Show 20 Lines • Show All 182 Lines • Show Last 20 Lines |