projects
/
oweals
/
u-boot.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
powerpc: ppc4xx: remove csb272, csb472 support
[oweals/u-boot.git]
/
lib
/
time.c
diff --git
a/lib/time.c
b/lib/time.c
index 73c3b6ad7ff4503c3b485dbdab091601575e3a12..477440de16faa3319852a6119935628f63aa8531 100644
(file)
--- a/
lib/time.c
+++ b/
lib/time.c
@@
-10,17
+10,14
@@
#include <div64.h>
#include <asm/io.h>
#include <div64.h>
#include <asm/io.h>
-#if CONFIG_SYS_HZ != 1000
-#warning "CONFIG_SYS_HZ must be 1000 and should not be defined by platforms"
-#endif
-
#ifndef CONFIG_WD_PERIOD
#ifndef CONFIG_WD_PERIOD
-# define CONFIG_WD_PERIOD (10 * 1000 * 1000) /* 10 seconds default*/
+# define CONFIG_WD_PERIOD (10 * 1000 * 1000) /* 10 seconds default
*/
#endif
DECLARE_GLOBAL_DATA_PTR;
#ifdef CONFIG_SYS_TIMER_RATE
#endif
DECLARE_GLOBAL_DATA_PTR;
#ifdef CONFIG_SYS_TIMER_RATE
+/* Returns tick rate in ticks per second */
ulong notrace get_tbclk(void)
{
return CONFIG_SYS_TIMER_RATE;
ulong notrace get_tbclk(void)
{
return CONFIG_SYS_TIMER_RATE;
@@
-40,7
+37,7
@@
unsigned long notrace timer_read_counter(void)
extern unsigned long __weak timer_read_counter(void);
#endif
extern unsigned long __weak timer_read_counter(void);
#endif
-u
nsigned long long
__weak notrace get_ticks(void)
+u
int64_t
__weak notrace get_ticks(void)
{
unsigned long now = timer_read_counter();
{
unsigned long now = timer_read_counter();
@@
-48,12
+45,13
@@
unsigned long long __weak notrace get_ticks(void)
if (now < gd->timebase_l)
gd->timebase_h++;
gd->timebase_l = now;
if (now < gd->timebase_l)
gd->timebase_h++;
gd->timebase_l = now;
- return ((u
nsigned long long
)gd->timebase_h << 32) | gd->timebase_l;
+ return ((u
int64_t
)gd->timebase_h << 32) | gd->timebase_l;
}
}
-static unsigned long long notrace tick_to_time(uint64_t tick)
+/* Returns time in milliseconds */
+static uint64_t notrace tick_to_time(uint64_t tick)
{
{
- u
nsigned int
div = get_tbclk();
+ u
long
div = get_tbclk();
tick *= CONFIG_SYS_HZ;
do_div(tick, div);
tick *= CONFIG_SYS_HZ;
do_div(tick, div);
@@
-65,6
+63,7
@@
int __weak timer_init(void)
return 0;
}
return 0;
}
+/* Returns time in milliseconds */
ulong __weak get_timer(ulong base)
{
return tick_to_time(get_ticks()) - base;
ulong __weak get_timer(ulong base)
{
return tick_to_time(get_ticks()) - base;
@@
-74,7
+73,8
@@
unsigned long __weak notrace timer_get_us(void)
{
return tick_to_time(get_ticks() * 1000);
}
{
return tick_to_time(get_ticks() * 1000);
}
-static unsigned long long usec_to_tick(unsigned long usec)
+
+static uint64_t usec_to_tick(unsigned long usec)
{
uint64_t tick = usec;
tick *= get_tbclk();
{
uint64_t tick = usec;
tick *= get_tbclk();
@@
-84,13
+84,11
@@
static unsigned long long usec_to_tick(unsigned long usec)
void __weak __udelay(unsigned long usec)
{
void __weak __udelay(unsigned long usec)
{
- unsigned long long tmp;
- ulong tmo;
+ uint64_t tmp;
- tmo = usec_to_tick(usec);
- tmp = get_ticks() + tmo; /* get current timestamp */
+ tmp = get_ticks() + usec_to_tick(usec); /* get current timestamp */
- while (get_ticks() < tmp
)
/* loop till event */
+ while (get_ticks() < tmp
+1)
/* loop till event */
/*NOP*/;
}
/*NOP*/;
}