Skip to content
Snippets Groups Projects
Commit 66ee6923 authored by Simon Glass's avatar Simon Glass Committed by Tom Rini
Browse files

arm: Move tbl to arch_global_data


Move this field into arch_global_data and tidy up.

Signed-off-by: default avatarSimon Glass <sjg@chromium.org>
parent 8ff43b03
No related branches found
No related tags found
No related merge requests found
Showing
with 64 additions and 60 deletions
......@@ -117,11 +117,11 @@ unsigned long long get_ticks(void)
if (now >= gd->lastinc) /* normal mode (non roll) */
/* move stamp forward with absolut diff ticks */
gd->tbl += (now - gd->lastinc);
gd->arch.tbl += (now - gd->lastinc);
else /* we have rollover of incrementer */
gd->tbl += (0xFFFFFFFF - gd->lastinc) + now;
gd->arch.tbl += (0xFFFFFFFF - gd->lastinc) + now;
gd->lastinc = now;
return gd->tbl;
return gd->arch.tbl;
}
ulong get_timer_masked(void)
......
......@@ -32,7 +32,7 @@
DECLARE_GLOBAL_DATA_PTR;
#define timestamp (gd->tbl)
#define timestamp (gd->arch.tbl)
#define lastinc (gd->lastinc)
/* General purpose timers bitfields */
......
......@@ -52,7 +52,7 @@ int timer_init (void)
/* reset time */
gd->lastinc = READ_TIMER; /* capture current incrementer value */
gd->tbl = 0; /* start "advancing" time stamp */
gd->arch.tbl = 0; /* start "advancing" time stamp */
return(0);
}
......@@ -82,7 +82,7 @@ void __udelay (unsigned long usec)
if ((tmo + tmp + 1) < tmp) { /* if setting this forward will roll */
/* time stamp, then reset time */
gd->lastinc = READ_TIMER; /* capture incrementer value */
gd->tbl = 0; /* start time stamp */
gd->arch.tbl = 0; /* start time stamp */
} else {
tmo += tmp; /* else, set advancing stamp wake up time */
}
......@@ -94,12 +94,15 @@ ulong get_timer_masked (void)
{
ulong now = READ_TIMER; /* current tick value */
if (now >= gd->lastinc) /* normal mode (non roll) */
gd->tbl += (now - gd->lastinc); /* move stamp fordward with absoulte diff ticks */
else /* we have rollover of incrementer */
gd->tbl += (0xFFFFFFFF - gd->lastinc) + now;
if (now >= gd->lastinc) { /* normal mode (non roll) */
/* move stamp fordward with absoulte diff ticks */
gd->arch.tbl += (now - gd->lastinc);
} else {
/* we have rollover of incrementer */
gd->arch.tbl += (0xFFFFFFFF - gd->lastinc) + now;
}
gd->lastinc = now;
return gd->tbl;
return gd->arch.tbl;
}
/* waits specified delay value and resets timestamp */
......
......@@ -75,7 +75,7 @@ int timer_init(void)
writel(cr, &tmr->cr);
gd->arch.timer_rate_hz = TIMER_CLOCK;
gd->arch.tbu = gd->tbl = 0;
gd->arch.tbu = gd->arch.tbl = 0;
return 0;
}
......@@ -89,10 +89,10 @@ unsigned long long get_ticks(void)
ulong now = TIMER_LOAD_VAL - readl(&tmr->timer3_counter);
/* increment tbu if tbl has rolled over */
if (now < gd->tbl)
if (now < gd->arch.tbl)
gd->arch.tbu++;
gd->tbl = now;
return (((unsigned long long)gd->arch.tbu) << 32) | gd->tbl;
gd->arch.tbl = now;
return (((unsigned long long)gd->arch.tbu) << 32) | gd->arch.tbl;
}
void __udelay(unsigned long usec)
......
......@@ -64,7 +64,7 @@ int timer_init(void)
writel(AT91_TC_CCR_SWTRG | AT91_TC_CCR_CLKEN, &tc->tc[0].ccr);
gd->lastinc = 0;
gd->tbl = 0;
gd->arch.tbl = 0;
return 0;
}
......@@ -91,14 +91,14 @@ ulong get_timer_raw(void)
if (now >= gd->lastinc) {
/* normal mode */
gd->tbl += now - gd->lastinc;
gd->arch.tbl += now - gd->lastinc;
} else {
/* we have an overflow ... */
gd->tbl += now + TIMER_LOAD_VAL - gd->lastinc;
gd->arch.tbl += now + TIMER_LOAD_VAL - gd->lastinc;
}
gd->lastinc = now;
return gd->tbl;
return gd->arch.tbl;
}
ulong get_timer_masked(void)
......
......@@ -63,7 +63,7 @@ int timer_init(void)
tmr = (tmr & ~0x0700000) | 0x0500000;
writel(tmr, &timers->tcon);
gd->lastinc = 0;
gd->tbl = 0;
gd->arch.tbl = 0;
return 0;
}
......@@ -130,14 +130,14 @@ unsigned long long get_ticks(void)
if (gd->lastinc >= now) {
/* normal mode */
gd->tbl += gd->lastinc - now;
gd->arch.tbl += gd->lastinc - now;
} else {
/* we have an overflow ... */
gd->tbl += gd->lastinc + gd->arch.tbu - now;
gd->arch.tbl += gd->lastinc + gd->arch.tbu - now;
}
gd->lastinc = now;
return gd->tbl;
return gd->arch.tbl;
}
/*
......
......@@ -61,7 +61,7 @@ struct armd1tmr_registers {
#define COUNT_RD_REQ 0x1
DECLARE_GLOBAL_DATA_PTR;
/* Using gd->arch.tbu from timestamp and gd->tbl for lastdec */
/* Using gd->arch.tbu from timestamp and gd->arch.tbl for lastdec */
/* For preventing risk of instability in reading counter value,
* first set read request to register cvwr and then read same
......@@ -82,14 +82,14 @@ ulong get_timer_masked(void)
{
ulong now = read_timer();
if (now >= gd->tbl) {
if (now >= gd->arch.tbl) {
/* normal mode */
gd->arch.tbu += now - gd->tbl;
gd->arch.tbu += now - gd->arch.tbl;
} else {
/* we have an overflow ... */
gd->arch.tbu += now + TIMER_LOAD_VAL - gd->tbl;
gd->arch.tbu += now + TIMER_LOAD_VAL - gd->arch.tbl;
}
gd->tbl = now;
gd->arch.tbl = now;
return gd->arch.tbu;
}
......@@ -135,8 +135,8 @@ int timer_init(void)
/* Enable timer 0 */
writel(0x1, &armd1timers->cer);
/* init the gd->arch.tbu and gd->tbl value */
gd->tbl = read_timer();
/* init the gd->arch.tbu and gd->arch.tbl value */
gd->arch.tbl = read_timer();
gd->arch.tbu = 0;
return 0;
......
......@@ -80,7 +80,7 @@ int timer_init(void)
writel(TIMER_LOAD_VAL | AT91_PIT_MR_EN , &pit->mr);
gd->arch.timer_rate_hz = gd->arch.mck_rate_hz / 16;
gd->arch.tbu = gd->tbl = 0;
gd->arch.tbu = gd->arch.tbl = 0;
return 0;
}
......@@ -95,10 +95,10 @@ unsigned long long get_ticks(void)
ulong now = readl(&pit->piir);
/* increment tbu if tbl has rolled over */
if (now < gd->tbl)
if (now < gd->arch.tbl)
gd->arch.tbu++;
gd->tbl = now;
return (((unsigned long long)gd->arch.tbu) << 32) | gd->tbl;
gd->arch.tbl = now;
return (((unsigned long long)gd->arch.tbu) << 32) | gd->arch.tbl;
}
void __udelay(unsigned long usec)
......
......@@ -74,11 +74,11 @@ unsigned long long get_ticks(void)
unsigned long now = readl(&timer->tim34);
/* increment tbu if tbl has rolled over */
if (now < gd->tbl)
if (now < gd->arch.tbl)
gd->arch.tbu++;
gd->tbl = now;
gd->arch.tbl = now;
return (((unsigned long long)gd->arch.tbu) << 32) | gd->tbl;
return (((unsigned long long)gd->arch.tbu) << 32) | gd->arch.tbl;
}
ulong get_timer(ulong base)
......
......@@ -86,7 +86,7 @@ struct kwtmr_registers *kwtmr_regs = (struct kwtmr_registers *)KW_TIMER_BASE;
DECLARE_GLOBAL_DATA_PTR;
#define timestamp gd->tbl
#define timestamp gd->arch.tbl
#define lastdec gd->lastinc
ulong get_timer_masked(void)
......
......@@ -35,7 +35,7 @@
DECLARE_GLOBAL_DATA_PTR;
#define timestamp gd->tbl
#define timestamp gd->arch.tbl
#define lastdec gd->lastinc
static inline unsigned long long tick_to_time(unsigned long long tick)
......
......@@ -44,7 +44,7 @@
DECLARE_GLOBAL_DATA_PTR;
#define timestamp (gd->tbl)
#define timestamp (gd->arch.tbl)
#define lastinc (gd->lastinc)
/*
......
......@@ -45,7 +45,7 @@
DECLARE_GLOBAL_DATA_PTR;
#define timestamp (gd->tbl)
#define timestamp (gd->arch.tbl)
#define lastinc (gd->lastinc)
/*
......
......@@ -36,7 +36,7 @@
DECLARE_GLOBAL_DATA_PTR;
#define timestamp (gd->tbl)
#define timestamp (gd->arch.tbl)
#define lastdec (gd->lastinc)
/*
......
......@@ -44,7 +44,7 @@
DECLARE_GLOBAL_DATA_PTR;
#define timestamp gd->tbl
#define timestamp gd->arch.tbl
#define lastdec gd->lastinc
int timer_init (void)
......
......@@ -92,7 +92,7 @@ static inline ulong read_timer(void)
DECLARE_GLOBAL_DATA_PTR;
#define timestamp gd->tbl
#define timestamp gd->arch.tbl
#define lastdec gd->lastinc
ulong get_timer_masked(void)
......
......@@ -60,7 +60,7 @@ struct panthtmr_registers {
#define COUNT_RD_REQ 0x1
DECLARE_GLOBAL_DATA_PTR;
/* Using gd->arch.tbu from timestamp and gd->tbl for lastdec */
/* Using gd->arch.tbu from timestamp and gd->arch.tbl for lastdec */
/*
* For preventing risk of instability in reading counter value,
......@@ -90,14 +90,14 @@ ulong get_timer_masked(void)
{
ulong now = read_timer();
if (now >= gd->tbl) {
if (now >= gd->arch.tbl) {
/* normal mode */
gd->arch.tbu += now - gd->tbl;
gd->arch.tbu += now - gd->arch.tbl;
} else {
/* we have an overflow ... */
gd->arch.tbu += now + TIMER_LOAD_VAL - gd->tbl;
gd->arch.tbu += now + TIMER_LOAD_VAL - gd->arch.tbl;
}
gd->tbl = now;
gd->arch.tbl = now;
return gd->arch.tbu;
}
......@@ -144,8 +144,8 @@ int timer_init(void)
/* Enable timer 0 */
writel(0x1, &panthtimers->cer);
/* init the gd->arch.tbu and gd->tbl value */
gd->tbl = read_timer();
/* init the gd->arch.tbu and gd->arch.tbl value */
gd->arch.tbl = read_timer();
gd->arch.tbu = 0;
return 0;
......
......@@ -38,7 +38,7 @@ static struct misc_regs *const misc_regs_p =
DECLARE_GLOBAL_DATA_PTR;
#define timestamp gd->tbl
#define timestamp gd->arch.tbl
#define lastdec gd->lastinc
int timer_init(void)
......
......@@ -44,7 +44,7 @@
DECLARE_GLOBAL_DATA_PTR;
#define timestamp gd->tbl
#define timestamp gd->arch.tbl
#define lastdec gd->lastinc
#define TIMER_ENABLE (1 << 7)
......
......@@ -57,7 +57,7 @@ int timer_init(void)
/* reset time, capture current incrementer value time */
gd->lastinc = readl(&timer_base->tcrr) / (TIMER_CLOCK / CONFIG_SYS_HZ);
gd->tbl = 0; /* start "advancing" time stamp from 0 */
gd->arch.tbl = 0; /* start "advancing" time stamp from 0 */
return 0;
}
......@@ -91,14 +91,15 @@ ulong get_timer_masked(void)
/* current tick value */
ulong now = readl(&timer_base->tcrr) / (TIMER_CLOCK / CONFIG_SYS_HZ);
if (now >= gd->lastinc) /* normal mode (non roll) */
if (now >= gd->lastinc) { /* normal mode (non roll) */
/* move stamp fordward with absoulte diff ticks */
gd->tbl += (now - gd->lastinc);
else /* we have rollover of incrementer */
gd->tbl += ((TIMER_LOAD_VAL / (TIMER_CLOCK / CONFIG_SYS_HZ))
- gd->lastinc) + now;
gd->arch.tbl += (now - gd->lastinc);
} else { /* we have rollover of incrementer */
gd->arch.tbl += ((TIMER_LOAD_VAL / (TIMER_CLOCK /
CONFIG_SYS_HZ)) - gd->lastinc) + now;
}
gd->lastinc = now;
return gd->tbl;
return gd->arch.tbl;
}
/*
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment