[PATCH] clk: clk-divider: divider calculation in clk_set_rate needs DIV_ROUND_UP
Sascha Hauer
s.hauer at pengutronix.de
Wed Jul 23 00:58:41 PDT 2014
To make the resulting rate is always smaller than the desired rate, and
not bigger.
Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
drivers/clk/clk-divider.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/clk/clk-divider.c b/drivers/clk/clk-divider.c
index 67783da..506a966 100644
--- a/drivers/clk/clk-divider.c
+++ b/drivers/clk/clk-divider.c
@@ -186,7 +186,7 @@ static int clk_divider_set_rate(struct clk *clk, unsigned long rate,
div = clk_divider_bestdiv(clk, rate, &best_parent_rate);
clk_set_rate(clk_get_parent(clk), best_parent_rate);
} else {
- div = parent_rate / rate;
+ div = DIV_ROUND_UP(parent_rate, rate);
}
value = _get_val(divider, div);
--
2.0.1
More information about the barebox
mailing list