aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/clk/imx/clk-frac-pll.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/clk/imx/clk-frac-pll.c')
-rw-r--r--drivers/clk/imx/clk-frac-pll.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/clk/imx/clk-frac-pll.c b/drivers/clk/imx/clk-frac-pll.c
index 0026c3969b1e..76b9eb15604e 100644
--- a/drivers/clk/imx/clk-frac-pll.c
+++ b/drivers/clk/imx/clk-frac-pll.c
@@ -155,13 +155,14 @@ static int clk_pll_set_rate(struct clk_hw *hw, unsigned long rate,
155{ 155{
156 struct clk_frac_pll *pll = to_clk_frac_pll(hw); 156 struct clk_frac_pll *pll = to_clk_frac_pll(hw);
157 u32 val, divfi, divff; 157 u32 val, divfi, divff;
158 u64 temp64 = parent_rate; 158 u64 temp64;
159 int ret; 159 int ret;
160 160
161 parent_rate *= 8; 161 parent_rate *= 8;
162 rate *= 2; 162 rate *= 2;
163 divfi = rate / parent_rate; 163 divfi = rate / parent_rate;
164 temp64 *= rate - divfi; 164 temp64 = parent_rate * divfi;
165 temp64 = rate - temp64;
165 temp64 *= PLL_FRAC_DENOM; 166 temp64 *= PLL_FRAC_DENOM;
166 do_div(temp64, parent_rate); 167 do_div(temp64, parent_rate);
167 divff = temp64; 168 divff = temp64;