ti814x: Fix illegal use of FP ops in clock_ti814x.c
authorMåns Rullgård <mans@mansr.com>
Mon, 28 Oct 2013 23:19:53 +0000 (23:19 +0000)
committerTom Rini <trini@ti.com>
Fri, 21 Feb 2014 19:03:44 +0000 (14:03 -0500)
The function pll_sigma_delta_val uses "float" data which is not correct.
The exact "why" of this mangling is lost to history, but this changes us
to equivalent non-FP math to get the same results.

Reported-by: Wolfgang Denk <wd@denx.de>
Acked-by: Matt Porter <mporter@linaro.org>
arch/arm/cpu/armv7/am33xx/clock_ti814x.c

index ef14f47ebc42e523d1e5026a9f5659e88a9b6409..9b5a47b01892f36c239638d857c0499e8a49f331 100644 (file)
@@ -211,11 +211,8 @@ static u32 pll_dco_freq_sel(u32 clkout_dco)
 static u32 pll_sigma_delta_val(u32 clkout_dco)
 {
        u32 sig_val = 0;
-       float frac_div;
 
-       frac_div = (float) clkout_dco / 250;
-       frac_div = frac_div + 0.90;
-       sig_val = (int)frac_div;
+       sig_val = (clkout_dco + 225) / 250;
        sig_val = sig_val << 24;
 
        return sig_val;