|
|
@@ -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 = {
|