[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