summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorStéphan Rafin <stephan@soliotek.com>2016-11-04 00:53:56 +0100
committerMaxime Ripard <maxime.ripard@free-electrons.com>2016-11-04 08:49:46 +0100
commitac95330b96376550ae7a533d1396272d675adfa2 (patch)
tree88a09eba4e06228afa8ade78ab862ed106082f9d /drivers
parenta17b9e4c9c5e9c4da4385908af0377af11529266 (diff)
downloadlinux-stable-ac95330b96376550ae7a533d1396272d675adfa2.tar.gz
linux-stable-ac95330b96376550ae7a533d1396272d675adfa2.tar.bz2
linux-stable-ac95330b96376550ae7a533d1396272d675adfa2.zip
clk: sunxi: Fix M factor computation for APB1
commit cfa636886033 ("clk: sunxi: factors: Consolidate get_factors parameters into a struct") introduced a regression for m factor computation in sun4i_get_apb1_factors function. The old code reassigned the "parent_rate" parameter to the targeted divisor value and was buggy for the returned frequency but not for the computed factors. Now, returned frequency is good but m factor is incorrectly computed (its max value 31 is always set resulting in a significantly slower frequency than the requested one...) This patch simply restores the original proper computation for m while keeping the good changes for returned rate. Fixes: cfa636886033 ("clk: sunxi: factors: Consolidate get_factors parameters into a struct") Signed-off-by: Stéphan Rafin <stephan@soliotek.com> Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/clk/sunxi/clk-sunxi.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/clk/sunxi/clk-sunxi.c b/drivers/clk/sunxi/clk-sunxi.c
index 838b22aa8b67..f2c9274b8bd5 100644
--- a/drivers/clk/sunxi/clk-sunxi.c
+++ b/drivers/clk/sunxi/clk-sunxi.c
@@ -373,7 +373,7 @@ static void sun4i_get_apb1_factors(struct factors_request *req)
else
calcp = 3;
- calcm = (req->parent_rate >> calcp) - 1;
+ calcm = (div >> calcp) - 1;
req->rate = (req->parent_rate >> calcp) / (calcm + 1);
req->m = calcm;