From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?utf-8?Q?Beno=C3=AEt_Th=C3=A9baudeau?= Date: Thu, 27 Sep 2012 22:27:14 +0200 (CEST) Subject: [U-Boot] [PATCH 2/7] mx25: Clean up clock calculations In-Reply-To: <354965566.5372561.1348777614543.JavaMail.root@advansee.com> Message-ID: <548551507.5372565.1348777634947.JavaMail.root@advansee.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Avoid possible overflow in clock calculations, and do not waste calls to lldiv() to divide simple ulongs. Signed-off-by: Beno?t Th?baudeau Cc: Stefano Babic --- .../arch/arm/cpu/arm926ejs/mx25/generic.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git u-boot-imx-e1eb75b.orig/arch/arm/cpu/arm926ejs/mx25/generic.c u-boot-imx-e1eb75b/arch/arm/cpu/arm926ejs/mx25/generic.c index 2283a89..5503522 100644 --- u-boot-imx-e1eb75b.orig/arch/arm/cpu/arm926ejs/mx25/generic.c +++ u-boot-imx-e1eb75b/arch/arm/cpu/arm926ejs/mx25/generic.c @@ -80,12 +80,12 @@ ulong imx_get_armclk(void) ulong div; if (cctl & CCM_CCTL_ARM_SRC) - fref = lldiv((fref * 3), 4); + fref = lldiv((u64) fref * 3, 4); div = ((cctl >> CCM_CCTL_ARM_DIV_SHIFT) & CCM_CCTL_ARM_DIV_MASK) + 1; - return lldiv(fref, div); + return fref / div; } ulong imx_get_ahbclk(void) @@ -98,7 +98,7 @@ ulong imx_get_ahbclk(void) div = ((cctl >> CCM_CCTL_AHB_DIV_SHIFT) & CCM_CCTL_AHB_DIV_MASK) + 1; - return lldiv(fref, div); + return fref / div; } ulong imx_get_perclk(int clk) @@ -110,7 +110,7 @@ ulong imx_get_perclk(int clk) div = readl(&ccm->pcdr[CCM_PERCLK_REG(clk)]); div = ((div >> CCM_PERCLK_SHIFT(clk)) & CCM_PERCLK_MASK) + 1; - return lldiv(fref, div); + return fref / div; } unsigned int mxc_get_clock(enum mxc_clock clk)