summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorReinhard Meyer <u-boot@emk-elektronik.de>2010-11-10 18:07:56 +0100
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>2011-05-18 07:56:52 +0200
commitcfff263f41e32c7ba2ee9162a8cc6423eb5a8390 (patch)
tree4d8a74824a1833b982420eb035e4e3ddb42630c6 /arch
parent7f6ed7ff7c3cd4cc7c30ea9d51b1013318f57467 (diff)
downloadu-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>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/cpu/arm926ejs/at91/timer.c27
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;
}
/*