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 d2bbe635e8..4e01d92076 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 06ab2c8ef0..a00053888f 100644 --- a/include/bootstage.h +++ b/include/bootstage.h @@ -203,6 +203,13 @@ enum bootstage_id { BOOTSTAGE_ID_ALLOC, }; +/* + * 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. * diff --git a/include/common.h b/include/common.h index 74d97046a0..4b5841ef47 100644 --- a/include/common.h +++ b/include/common.h @@ -206,13 +206,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 */ diff --git a/lib/time.c b/lib/time.c index 69edc3d39b..6e2937b8e7 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"))); -- 2.25.1