mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-09-21 15:12:04 +00:00
arm, davinci: Use lldiv for the 64-bit divisions in timer.c
Signed-off-by: Christian Riesch <christian.riesch@omicron.at> Cc: Tom Rini <trini@ti.com> Cc: Heiko Schocher <hs@denx.de> Cc: Wolfgang Denk <wd@denx.de>
This commit is contained in:
parent
b9f31cc42c
commit
e21b3dfb0a
1 changed files with 4 additions and 2 deletions
|
@ -40,6 +40,7 @@
|
||||||
#include <common.h>
|
#include <common.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
#include <asm/arch/timer_defs.h>
|
#include <asm/arch/timer_defs.h>
|
||||||
|
#include <div64.h>
|
||||||
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
|
@ -86,14 +87,15 @@ ulong get_timer(ulong base)
|
||||||
|
|
||||||
timer_diff = get_ticks() - gd->timer_reset_value;
|
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)
|
void __udelay(unsigned long usec)
|
||||||
{
|
{
|
||||||
unsigned long long endtime;
|
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();
|
endtime += get_ticks();
|
||||||
|
|
||||||
while (get_ticks() < endtime)
|
while (get_ticks() < endtime)
|
||||||
|
|
Loading…
Reference in a new issue