From 3786980dd3f28960947084c53878fd849ece897c Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Thu, 5 Apr 2012 12:05:17 +0000 Subject: [PATCH] Move bootstage timer out of lib/time.c The standalone example does not have get_timer() defined, so we cannot rely on it being available. Move the timer function into boootstage.c to avoid this problem. This corrects a build breakage for the standalone example on some boards. Signed-off-by: Simon Glass Acked-by: Matthias Fuchs --- common/bootstage.c | 17 +++++++++++++++++ include/bootstage.h | 7 +++++++ include/common.h | 7 ------- lib/time.c | 17 ----------------- 4 files changed, 24 insertions(+), 24 deletions(-) diff --git a/common/bootstage.c b/common/bootstage.c index d2bbe63..4e01d92 100644 --- a/common/bootstage.c +++ b/common/bootstage.c @@ -156,3 +156,20 @@ void bootstage_report(void) "- please increase CONFIG_BOOTSTAGE_USER_COUNT\n", next_id - BOOTSTAGE_ID_COUNT); } + +ulong __timer_get_boot_us(void) +{ + static ulong base_time; + + /* + * We can't implement this properly. Return 0 on the first call and + * larger values after that. + */ + if (base_time) + return get_timer(base_time) * 1000; + base_time = get_timer(0); + return 0; +} + +ulong timer_get_boot_us(void) + __attribute__((weak, alias("__timer_get_boot_us"))); diff --git a/include/bootstage.h b/include/bootstage.h index 06ab2c8..a000538 100644 --- a/include/bootstage.h +++ b/include/bootstage.h @@ -204,6 +204,13 @@ enum bootstage_id { }; /* + * Return the time since boot in microseconds, This is needed for bootstage + * and should be defined in CPU- or board-specific code. If undefined then + * millisecond resolution will be used (the standard get_timer()). + */ +ulong timer_get_boot_us(void); + +/* * Board code can implement show_boot_progress() if needed. * * @param val Progress state (enum bootstage_id), or -id if an error diff --git a/include/common.h b/include/common.h index 74d9704..4b5841e 100644 --- a/include/common.h +++ b/include/common.h @@ -207,13 +207,6 @@ typedef void (interrupt_handler_t)(void *); #endif /* CONFIG_SERIAL_MULTI */ /* - * Return the time since boot in microseconds, This is needed for bootstage - * and should be defined in CPU- or board-specific code. If undefined then - * millisecond resolution will be used (the standard get_timer()). - */ -ulong timer_get_boot_us(void); - -/* * General Purpose Utilities */ #define min(X, Y) \ diff --git a/lib/time.c b/lib/time.c index 69edc3d..6e2937b 100644 --- a/lib/time.c +++ b/lib/time.c @@ -47,20 +47,3 @@ void mdelay(unsigned long msec) while (msec--) udelay(1000); } - -ulong __timer_get_boot_us(void) -{ - static ulong base_time; - - /* - * We can't implement this properly. Return 0 on the first call and - * larger values after that. - */ - if (base_time) - return get_timer(base_time) * 1000; - base_time = get_timer(0); - return 0; -} - -ulong timer_get_boot_us(void) - __attribute__((weak, alias("__timer_get_boot_us")));