On 05/04/2017 04:36, Peng Fan wrote: > From: Ye Li <ye...@nxp.com> > > The num/denom is a float value, but in the calculation it is convert > to integer 0, and wrong result. > > Signed-off-by: Ye Li <ye...@nxp.com> > Signed-off-by: Peng Fan <peng....@nxp.com> > Cc: Stefano Babic <sba...@denx.de> > --- > arch/arm/cpu/armv7/mx7ulp/scg.c | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/arch/arm/cpu/armv7/mx7ulp/scg.c b/arch/arm/cpu/armv7/mx7ulp/scg.c > index ca8252d..c117af0 100644 > --- a/arch/arm/cpu/armv7/mx7ulp/scg.c > +++ b/arch/arm/cpu/armv7/mx7ulp/scg.c > @@ -504,7 +504,9 @@ u32 decode_pll(enum pll_clocks pll) > num = readl(&scg1_regs->spllnum); > denom = readl(&scg1_regs->splldenom); > > - return (infreq / pre_div) * (mult + num / denom); > + infreq = infreq / pre_div; > + > + return infreq * mult + infreq * num / denom; > > case PLL_A7_APLL: > reg = readl(&scg1_regs->apllcsr); > @@ -531,7 +533,9 @@ u32 decode_pll(enum pll_clocks pll) > num = readl(&scg1_regs->apllnum); > denom = readl(&scg1_regs->aplldenom); > > - return (infreq / pre_div) * (mult + num / denom); > + infreq = infreq / pre_div; > + > + return infreq * mult + infreq * num / denom; > > case PLL_USB: > reg = readl(&scg1_regs->upllcsr); >
Applied to u-boot-imx, thanks! Best regards, Stefano Babic -- ===================================================================== DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sba...@denx.de ===================================================================== _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot