mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-15 16:24:13 +08:00
imx/clk-pllv1: fix wrong do_div() usage
do_div() is meant to be used with an unsigned dividend. Signed-off-by: Nicolas Pitre <nico@linaro.org>
This commit is contained in:
parent
8cb87c0407
commit
6a0078c852
@ -52,7 +52,7 @@ static unsigned long clk_pllv1_recalc_rate(struct clk_hw *hw,
|
||||
unsigned long parent_rate)
|
||||
{
|
||||
struct clk_pllv1 *pll = to_clk_pllv1(hw);
|
||||
long long ll;
|
||||
unsigned long long ull;
|
||||
int mfn_abs;
|
||||
unsigned int mfi, mfn, mfd, pd;
|
||||
u32 reg;
|
||||
@ -94,16 +94,16 @@ static unsigned long clk_pllv1_recalc_rate(struct clk_hw *hw,
|
||||
rate = parent_rate * 2;
|
||||
rate /= pd + 1;
|
||||
|
||||
ll = (unsigned long long)rate * mfn_abs;
|
||||
ull = (unsigned long long)rate * mfn_abs;
|
||||
|
||||
do_div(ll, mfd + 1);
|
||||
do_div(ull, mfd + 1);
|
||||
|
||||
if (mfn_is_negative(pll, mfn))
|
||||
ll = -ll;
|
||||
ull = (rate * mfi) - ull;
|
||||
else
|
||||
ull = (rate * mfi) + ull;
|
||||
|
||||
ll = (rate * mfi) + ll;
|
||||
|
||||
return ll;
|
||||
return ull;
|
||||
}
|
||||
|
||||
static struct clk_ops clk_pllv1_ops = {
|
||||
|
Loading…
Reference in New Issue
Block a user