diff options
author | Reinhard Meyer <u-boot@emk-elektronik.de> | 2010-11-10 18:07:56 +0100 |
---|---|---|
committer | Albert ARIBAUD <albert.u.boot@aribaud.net> | 2011-05-18 07:56:52 +0200 |
commit | cfff263f41e32c7ba2ee9162a8cc6423eb5a8390 (patch) | |
tree | 4d8a74824a1833b982420eb035e4e3ddb42630c6 | |
parent | 7f6ed7ff7c3cd4cc7c30ea9d51b1013318f57467 (diff) | |
download | u-boot-imx-cfff263f41e32c7ba2ee9162a8cc6423eb5a8390.zip u-boot-imx-cfff263f41e32c7ba2ee9162a8cc6423eb5a8390.tar.gz u-boot-imx-cfff263f41e32c7ba2ee9162a8cc6423eb5a8390.tar.bz2 |
AT91: fix timer.c - remove reset_timer()
Signed-off-by: Reinhard Meyer <u-boot@emk-elektronik.de>
-rw-r--r-- | arch/arm/cpu/arm926ejs/at91/timer.c | 27 |
1 files changed, 11 insertions, 16 deletions
diff --git a/arch/arm/cpu/arm926ejs/at91/timer.c b/arch/arm/cpu/arm926ejs/at91/timer.c index 87a5b63..a087687 100644 --- a/arch/arm/cpu/arm926ejs/at91/timer.c +++ b/arch/arm/cpu/arm926ejs/at91/timer.c @@ -103,33 +103,28 @@ unsigned long long get_ticks(void) void __udelay(unsigned long usec) { - unsigned long long tmp; + unsigned long long start; ulong tmo; - tmo = usec_to_tick(usec); - tmp = get_ticks() + tmo; /* get current timestamp */ - - while (get_ticks() < tmp) /* loop till event */ - ; + start = get_ticks(); /* get current timestamp */ + tmo = usec_to_tick(usec); /* convert usecs to ticks */ + while ((get_ticks() - start) < tmo) + ; /* loop till time has passed */ } /* - * reset_timer() and get_timer(base) are a pair of functions that are used by - * some timeout/sleep mechanisms in u-boot. + * get_timer(base) can be used to check for timeouts or + * to measure elasped time relative to an event: * - * reset_timer() marks the current time as epoch and - * get_timer(base) works relative to that epoch. + * ulong start_time = get_timer(0) sets start_time to the current + * time value. + * get_timer(start_time) returns the time elapsed since then. * * The time is used in CONFIG_SYS_HZ units! */ -void reset_timer(void) -{ - gd->timer_reset_value = get_ticks(); -} - ulong get_timer(ulong base) { - return tick_to_time(get_ticks() - gd->timer_reset_value) - base; + return tick_to_time(get_ticks()) - base; } /* |