diff options
Diffstat (limited to 'arch/arm/cpu/arm926ejs/davinci/timer.c')
| -rw-r--r-- | arch/arm/cpu/arm926ejs/davinci/timer.c | 6 | 
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/arm/cpu/arm926ejs/davinci/timer.c b/arch/arm/cpu/arm926ejs/davinci/timer.c index c7bf7a5ad..a06d44955 100644 --- a/arch/arm/cpu/arm926ejs/davinci/timer.c +++ b/arch/arm/cpu/arm926ejs/davinci/timer.c @@ -40,6 +40,7 @@  #include <common.h>  #include <asm/io.h>  #include <asm/arch/timer_defs.h> +#include <div64.h>  DECLARE_GLOBAL_DATA_PTR; @@ -86,14 +87,15 @@ ulong get_timer(ulong base)  	timer_diff = get_ticks() - gd->timer_reset_value; -	return (timer_diff / (gd->timer_rate_hz / CONFIG_SYS_HZ)) - base; +	return lldiv(timer_diff, (gd->timer_rate_hz / CONFIG_SYS_HZ)) - base;  }  void __udelay(unsigned long usec)  {  	unsigned long long endtime; -	endtime = ((unsigned long long)usec * gd->timer_rate_hz) / 1000000UL; +	endtime = lldiv((unsigned long long)usec * gd->timer_rate_hz, +			1000000UL);  	endtime += get_ticks();  	while (get_ticks() < endtime)  |