summaryrefslogtreecommitdiffstats
path: root/drivers/clk/clk-divider.c
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2014-07-22 15:03:41 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2014-07-23 09:57:08 +0200
commit7d664f98d1ba1181295ffe8dcabf4f4c1af96c25 (patch)
treea0d97b62c3f221dea5683b053dccb382fec44529 /drivers/clk/clk-divider.c
parent752b9f4bf48bc62bd9062a669c91470102107fec (diff)
downloadbarebox-7d664f98d1ba1181295ffe8dcabf4f4c1af96c25.tar.gz
barebox-7d664f98d1ba1181295ffe8dcabf4f4c1af96c25.tar.xz
clk: clk-divider: divider calculation in clk_set_rate needs DIV_ROUND_UP
To make the resulting rate is always smaller than the desired rate, and not bigger. Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'drivers/clk/clk-divider.c')
-rw-r--r--drivers/clk/clk-divider.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/clk/clk-divider.c b/drivers/clk/clk-divider.c
index 67783daabb..506a9668a9 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);