On Mon, Oct 28, 2013 at 11:19:53PM +0000, Måns Rullgård wrote: > Wolfgang Denk <w...@denx.de> writes: > > > Dear Matt, > > > > I hope you are the right person to address this to - if not, please > > help to redirect to the current responsible developer. > > > > Function pll_sigma_delta_val() in arch/arm/cpu/armv7/am33xx/clock_ti814x.c > > incorrectly uses "float" data, which results in FP operations which > > are not permitted in U-Boot. > > > > The actual computation appears simple enough so a rewrite of the code > > without using any floating point operations should be fairly easy, but > > I don't understand the actual logic of this code, so I'd rather leave > > this to someone who does. > > > > Could you please help and clean up these three lines of code? > > Something like this should be equivalent. That said, it looks > suspiciously like it's meant to simply do a division and round up. If > that is the case, +225 should be +249. It probably makes no difference > for the values actually encountered. > Acked-by: Matt Porter <mpor...@linaro.org> > > > diff --git a/arch/arm/cpu/armv7/am33xx/clock_ti814x.c > b/arch/arm/cpu/armv7/am33xx/clock_ti814x.c > index ef14f47..9b5a47b 100644 > --- a/arch/arm/cpu/armv7/am33xx/clock_ti814x.c > +++ b/arch/arm/cpu/armv7/am33xx/clock_ti814x.c > @@ -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;
With a massively re-worded commit message, applied to u-boot-ti/master, thanks! -- Tom
signature.asc
Description: Digital signature
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot