diff options
author | Stéphan Rafin <stephan@soliotek.com> | 2016-11-04 00:53:56 +0100 |
---|---|---|
committer | Maxime Ripard <maxime.ripard@free-electrons.com> | 2016-11-04 08:49:46 +0100 |
commit | ac95330b96376550ae7a533d1396272d675adfa2 (patch) | |
tree | 88a09eba4e06228afa8ade78ab862ed106082f9d /drivers | |
parent | a17b9e4c9c5e9c4da4385908af0377af11529266 (diff) | |
download | linux-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.c | 2 |
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; |