arm: Move lastinc to arch_global_data
Move this field into arch_global_data and tidy up. Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
66ee692347
commit
582601da2f
@ -115,12 +115,12 @@ unsigned long long get_ticks(void)
|
||||
{
|
||||
ulong now = GPTCNT; /* current tick value */
|
||||
|
||||
if (now >= gd->lastinc) /* normal mode (non roll) */
|
||||
if (now >= gd->arch.lastinc) /* normal mode (non roll) */
|
||||
/* move stamp forward with absolut diff ticks */
|
||||
gd->arch.tbl += (now - gd->lastinc);
|
||||
gd->arch.tbl += (now - gd->arch.lastinc);
|
||||
else /* we have rollover of incrementer */
|
||||
gd->arch.tbl += (0xFFFFFFFF - gd->lastinc) + now;
|
||||
gd->lastinc = now;
|
||||
gd->arch.tbl += (0xFFFFFFFF - gd->arch.lastinc) + now;
|
||||
gd->arch.lastinc = now;
|
||||
return gd->arch.tbl;
|
||||
}
|
||||
|
||||
|
@ -33,7 +33,7 @@
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
#define timestamp (gd->arch.tbl)
|
||||
#define lastinc (gd->lastinc)
|
||||
#define lastinc (gd->arch.lastinc)
|
||||
|
||||
/* General purpose timers bitfields */
|
||||
#define GPTCR_SWR (1<<15) /* Software reset */
|
||||
|
@ -51,7 +51,7 @@ int timer_init (void)
|
||||
*((int32_t *) (CONFIG_SYS_TIMERBASE + TCLR)) = val; /* start timer */
|
||||
|
||||
/* reset time */
|
||||
gd->lastinc = READ_TIMER; /* capture current incrementer value */
|
||||
gd->arch.lastinc = READ_TIMER; /* capture current incrementer value */
|
||||
gd->arch.tbl = 0; /* start "advancing" time stamp */
|
||||
|
||||
return(0);
|
||||
@ -81,7 +81,7 @@ void __udelay (unsigned long usec)
|
||||
tmp = get_timer (0); /* get current timestamp */
|
||||
if ((tmo + tmp + 1) < tmp) { /* if setting this forward will roll */
|
||||
/* time stamp, then reset time */
|
||||
gd->lastinc = READ_TIMER; /* capture incrementer value */
|
||||
gd->arch.lastinc = READ_TIMER; /* capture incrementer value */
|
||||
gd->arch.tbl = 0; /* start time stamp */
|
||||
} else {
|
||||
tmo += tmp; /* else, set advancing stamp wake up time */
|
||||
@ -94,14 +94,14 @@ ulong get_timer_masked (void)
|
||||
{
|
||||
ulong now = READ_TIMER; /* current tick value */
|
||||
|
||||
if (now >= gd->lastinc) { /* normal mode (non roll) */
|
||||
if (now >= gd->arch.lastinc) { /* normal mode (non roll) */
|
||||
/* move stamp fordward with absoulte diff ticks */
|
||||
gd->arch.tbl += (now - gd->lastinc);
|
||||
gd->arch.tbl += (now - gd->arch.lastinc);
|
||||
} else {
|
||||
/* we have rollover of incrementer */
|
||||
gd->arch.tbl += (0xFFFFFFFF - gd->lastinc) + now;
|
||||
gd->arch.tbl += (0xFFFFFFFF - gd->arch.lastinc) + now;
|
||||
}
|
||||
gd->lastinc = now;
|
||||
gd->arch.lastinc = now;
|
||||
return gd->arch.tbl;
|
||||
}
|
||||
|
||||
|
@ -63,7 +63,7 @@ int timer_init(void)
|
||||
writel(TIMER_LOAD_VAL, &tc->tc[0].rc);
|
||||
|
||||
writel(AT91_TC_CCR_SWTRG | AT91_TC_CCR_CLKEN, &tc->tc[0].ccr);
|
||||
gd->lastinc = 0;
|
||||
gd->arch.lastinc = 0;
|
||||
gd->arch.tbl = 0;
|
||||
|
||||
return 0;
|
||||
@ -89,14 +89,14 @@ ulong get_timer_raw(void)
|
||||
|
||||
now = readl(&tc->tc[0].cv) & 0x0000ffff;
|
||||
|
||||
if (now >= gd->lastinc) {
|
||||
if (now >= gd->arch.lastinc) {
|
||||
/* normal mode */
|
||||
gd->arch.tbl += now - gd->lastinc;
|
||||
gd->arch.tbl += now - gd->arch.lastinc;
|
||||
} else {
|
||||
/* we have an overflow ... */
|
||||
gd->arch.tbl += now + TIMER_LOAD_VAL - gd->lastinc;
|
||||
gd->arch.tbl += now + TIMER_LOAD_VAL - gd->arch.lastinc;
|
||||
}
|
||||
gd->lastinc = now;
|
||||
gd->arch.lastinc = now;
|
||||
|
||||
return gd->arch.tbl;
|
||||
}
|
||||
|
@ -62,7 +62,7 @@ int timer_init(void)
|
||||
/* auto load, start timer 4 */
|
||||
tmr = (tmr & ~0x0700000) | 0x0500000;
|
||||
writel(tmr, &timers->tcon);
|
||||
gd->lastinc = 0;
|
||||
gd->arch.lastinc = 0;
|
||||
gd->arch.tbl = 0;
|
||||
|
||||
return 0;
|
||||
@ -128,14 +128,14 @@ unsigned long long get_ticks(void)
|
||||
struct s3c24x0_timers *timers = s3c24x0_get_base_timers();
|
||||
ulong now = readl(&timers->tcnto4) & 0xffff;
|
||||
|
||||
if (gd->lastinc >= now) {
|
||||
if (gd->arch.lastinc >= now) {
|
||||
/* normal mode */
|
||||
gd->arch.tbl += gd->lastinc - now;
|
||||
gd->arch.tbl += gd->arch.lastinc - now;
|
||||
} else {
|
||||
/* we have an overflow ... */
|
||||
gd->arch.tbl += gd->lastinc + gd->arch.tbu - now;
|
||||
gd->arch.tbl += gd->arch.lastinc + gd->arch.tbu - now;
|
||||
}
|
||||
gd->lastinc = now;
|
||||
gd->arch.lastinc = now;
|
||||
|
||||
return gd->arch.tbl;
|
||||
}
|
||||
|
@ -87,7 +87,7 @@ struct kwtmr_registers *kwtmr_regs = (struct kwtmr_registers *)KW_TIMER_BASE;
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
#define timestamp gd->arch.tbl
|
||||
#define lastdec gd->lastinc
|
||||
#define lastdec gd->arch.lastinc
|
||||
|
||||
ulong get_timer_masked(void)
|
||||
{
|
||||
|
@ -36,7 +36,7 @@
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
#define timestamp gd->arch.tbl
|
||||
#define lastdec gd->lastinc
|
||||
#define lastdec gd->arch.lastinc
|
||||
|
||||
static inline unsigned long long tick_to_time(unsigned long long tick)
|
||||
{
|
||||
|
@ -45,7 +45,7 @@
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
#define timestamp (gd->arch.tbl)
|
||||
#define lastinc (gd->lastinc)
|
||||
#define lastinc (gd->arch.lastinc)
|
||||
|
||||
/*
|
||||
* "time" is measured in 1 / CONFIG_SYS_HZ seconds,
|
||||
|
@ -46,7 +46,7 @@
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
#define timestamp (gd->arch.tbl)
|
||||
#define lastinc (gd->lastinc)
|
||||
#define lastinc (gd->arch.lastinc)
|
||||
|
||||
/*
|
||||
* "time" is measured in 1 / CONFIG_SYS_HZ seconds,
|
||||
|
@ -37,7 +37,7 @@
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
#define timestamp (gd->arch.tbl)
|
||||
#define lastdec (gd->lastinc)
|
||||
#define lastdec (gd->arch.lastinc)
|
||||
|
||||
/*
|
||||
* This driver uses 1kHz clock source.
|
||||
|
@ -45,7 +45,7 @@
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
#define timestamp gd->arch.tbl
|
||||
#define lastdec gd->lastinc
|
||||
#define lastdec gd->arch.lastinc
|
||||
|
||||
int timer_init (void)
|
||||
{
|
||||
|
@ -93,7 +93,7 @@ static inline ulong read_timer(void)
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
#define timestamp gd->arch.tbl
|
||||
#define lastdec gd->lastinc
|
||||
#define lastdec gd->arch.lastinc
|
||||
|
||||
ulong get_timer_masked(void)
|
||||
{
|
||||
|
@ -39,7 +39,7 @@ static struct misc_regs *const misc_regs_p =
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
#define timestamp gd->arch.tbl
|
||||
#define lastdec gd->lastinc
|
||||
#define lastdec gd->arch.lastinc
|
||||
|
||||
int timer_init(void)
|
||||
{
|
||||
|
@ -45,7 +45,7 @@
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
#define timestamp gd->arch.tbl
|
||||
#define lastdec gd->lastinc
|
||||
#define lastdec gd->arch.lastinc
|
||||
|
||||
#define TIMER_ENABLE (1 << 7)
|
||||
#define TIMER_MODE_MSK (1 << 6)
|
||||
|
@ -56,7 +56,8 @@ int timer_init(void)
|
||||
&timer_base->tclr);
|
||||
|
||||
/* reset time, capture current incrementer value time */
|
||||
gd->lastinc = readl(&timer_base->tcrr) / (TIMER_CLOCK / CONFIG_SYS_HZ);
|
||||
gd->arch.lastinc = readl(&timer_base->tcrr) /
|
||||
(TIMER_CLOCK / CONFIG_SYS_HZ);
|
||||
gd->arch.tbl = 0; /* start "advancing" time stamp from 0 */
|
||||
|
||||
return 0;
|
||||
@ -91,14 +92,14 @@ 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->arch.lastinc) { /* normal mode (non roll) */
|
||||
/* move stamp fordward with absoulte diff ticks */
|
||||
gd->arch.tbl += (now - gd->lastinc);
|
||||
gd->arch.tbl += (now - gd->arch.lastinc);
|
||||
} else { /* we have rollover of incrementer */
|
||||
gd->arch.tbl += ((TIMER_LOAD_VAL / (TIMER_CLOCK /
|
||||
CONFIG_SYS_HZ)) - gd->lastinc) + now;
|
||||
CONFIG_SYS_HZ)) - gd->arch.lastinc) + now;
|
||||
}
|
||||
gd->lastinc = now;
|
||||
gd->arch.lastinc = now;
|
||||
return gd->arch.tbl;
|
||||
}
|
||||
|
||||
|
@ -105,7 +105,7 @@ void reset_timer_masked(void)
|
||||
struct s5p_timer *const timer = s5p_get_base_timer();
|
||||
|
||||
/* reset time */
|
||||
gd->lastinc = readl(&timer->tcnto4);
|
||||
gd->arch.lastinc = readl(&timer->tcnto4);
|
||||
gd->arch.tbl = 0;
|
||||
}
|
||||
|
||||
@ -123,12 +123,12 @@ unsigned long get_current_tick(void)
|
||||
unsigned long now = readl(&timer->tcnto4);
|
||||
unsigned long count_value = readl(&timer->tcntb4);
|
||||
|
||||
if (gd->lastinc >= now)
|
||||
gd->arch.tbl += gd->lastinc - now;
|
||||
if (gd->arch.lastinc >= now)
|
||||
gd->arch.tbl += gd->arch.lastinc - now;
|
||||
else
|
||||
gd->arch.tbl += gd->lastinc + count_value - now;
|
||||
gd->arch.tbl += gd->arch.lastinc + count_value - now;
|
||||
|
||||
gd->lastinc = now;
|
||||
gd->arch.lastinc = now;
|
||||
|
||||
return gd->arch.tbl;
|
||||
}
|
||||
|
@ -80,15 +80,15 @@ ulong get_timer_masked(void)
|
||||
{
|
||||
/* current tick value */
|
||||
ulong now = read_timer() / (CONFIG_TIMER_CLOCK_KHZ/CONFIG_SYS_HZ);
|
||||
if (gd->lastinc >= now) {
|
||||
if (gd->arch.lastinc >= now) {
|
||||
/* normal mode (non roll) */
|
||||
/* move stamp forward with absolute diff ticks */
|
||||
gd->arch.tbl += gd->lastinc - now;
|
||||
gd->arch.tbl += gd->arch.lastinc - now;
|
||||
} else {
|
||||
/* we have overflow of the count down timer */
|
||||
gd->arch.tbl += TIMER_LOAD_VAL - gd->lastinc + now;
|
||||
gd->arch.tbl += TIMER_LOAD_VAL - gd->arch.lastinc + now;
|
||||
}
|
||||
gd->lastinc = now;
|
||||
gd->arch.lastinc = now;
|
||||
return gd->arch.tbl;
|
||||
}
|
||||
|
||||
@ -98,7 +98,8 @@ ulong get_timer_masked(void)
|
||||
void reset_timer(void)
|
||||
{
|
||||
/* capture current decrementer value time */
|
||||
gd->lastinc = read_timer() / (CONFIG_TIMER_CLOCK_KHZ/CONFIG_SYS_HZ);
|
||||
gd->arch.lastinc = read_timer() /
|
||||
(CONFIG_TIMER_CLOCK_KHZ / CONFIG_SYS_HZ);
|
||||
/* start "advancing" time stamp from 0 */
|
||||
gd->arch.tbl = 0;
|
||||
}
|
||||
|
@ -100,13 +100,13 @@ ulong get_timer_masked(void)
|
||||
/* current tick value */
|
||||
ulong now = TICKS_TO_HZ(READ_TIMER());
|
||||
|
||||
if (now >= gd->lastinc) { /* normal (non rollover) */
|
||||
gd->arch.tbl += (now - gd->lastinc);
|
||||
if (now >= gd->arch.lastinc) { /* normal (non rollover) */
|
||||
gd->arch.tbl += (now - gd->arch.lastinc);
|
||||
} else { /* rollover */
|
||||
gd->arch.tbl += (TICKS_TO_HZ(TIMER_LOAD_VAL) - gd->lastinc)
|
||||
+ now;
|
||||
gd->arch.tbl += (TICKS_TO_HZ(TIMER_LOAD_VAL) -
|
||||
gd->arch.lastinc) + now;
|
||||
}
|
||||
gd->lastinc = now;
|
||||
gd->arch.lastinc = now;
|
||||
return gd->arch.tbl;
|
||||
}
|
||||
|
||||
|
@ -83,7 +83,7 @@ int timer_init(void)
|
||||
emask);
|
||||
|
||||
/* Reset time */
|
||||
gd->lastinc = readl(&timer_base->counter) /
|
||||
gd->arch.lastinc = readl(&timer_base->counter) /
|
||||
(TIMER_TICK_HZ / CONFIG_SYS_HZ);
|
||||
gd->arch.tbl = 0;
|
||||
|
||||
@ -100,14 +100,14 @@ ulong get_timer_masked(void)
|
||||
|
||||
now = readl(&timer_base->counter) / (TIMER_TICK_HZ / CONFIG_SYS_HZ);
|
||||
|
||||
if (gd->lastinc >= now) {
|
||||
if (gd->arch.lastinc >= now) {
|
||||
/* Normal mode */
|
||||
gd->arch.tbl += gd->lastinc - now;
|
||||
gd->arch.tbl += gd->arch.lastinc - now;
|
||||
} else {
|
||||
/* We have an overflow ... */
|
||||
gd->arch.tbl += gd->lastinc + TIMER_LOAD_VAL - now;
|
||||
gd->arch.tbl += gd->arch.lastinc + TIMER_LOAD_VAL - now;
|
||||
}
|
||||
gd->lastinc = now;
|
||||
gd->arch.lastinc = now;
|
||||
|
||||
return gd->arch.tbl;
|
||||
}
|
||||
|
@ -70,13 +70,13 @@ unsigned long long get_ticks(void)
|
||||
|
||||
if (readl(IXP425_OSST) & IXP425_OSST_TIMER_TS_PEND) {
|
||||
/* rollover of timestamp timer register */
|
||||
gd->timestamp += (0xFFFFFFFF - gd->lastinc) + now + 1;
|
||||
gd->timestamp += (0xFFFFFFFF - gd->arch.lastinc) + now + 1;
|
||||
writel(IXP425_OSST_TIMER_TS_PEND, IXP425_OSST);
|
||||
} else {
|
||||
/* move stamp forward with absolut diff ticks */
|
||||
gd->timestamp += (now - gd->lastinc);
|
||||
gd->timestamp += (now - gd->arch.lastinc);
|
||||
}
|
||||
gd->lastinc = now;
|
||||
gd->arch.lastinc = now;
|
||||
return gd->timestamp;
|
||||
}
|
||||
|
||||
@ -84,7 +84,7 @@ unsigned long long get_ticks(void)
|
||||
void reset_timer_masked(void)
|
||||
{
|
||||
/* capture current timestamp counter */
|
||||
gd->lastinc = readl(IXP425_OSTS_B);
|
||||
gd->arch.lastinc = readl(IXP425_OSTS_B);
|
||||
/* start "advancing" time stamp from 0 */
|
||||
gd->timestamp = 0;
|
||||
}
|
||||
|
@ -32,7 +32,7 @@ DECLARE_GLOBAL_DATA_PTR;
|
||||
#define TIMER_LOAD_VAL 0xffffffff
|
||||
|
||||
#define timestamp (gd->arch.tbl)
|
||||
#define lastinc (gd->lastinc)
|
||||
#define lastinc (gd->arch.lastinc)
|
||||
|
||||
#if defined(CONFIG_CPU_PXA27X) || defined(CONFIG_CPU_MONAHANS)
|
||||
#define TIMER_FREQ_HZ 3250000
|
||||
|
@ -75,13 +75,13 @@ ulong get_timer_masked(void)
|
||||
/* current tick value */
|
||||
now = timer_get_us() / (TIMER_CLK / CONFIG_SYS_HZ);
|
||||
|
||||
if (now >= gd->lastinc) /* normal mode (non roll) */
|
||||
if (now >= gd->arch.lastinc) /* normal mode (non roll) */
|
||||
/* move stamp forward with absolute diff ticks */
|
||||
gd->arch.tbl += (now - gd->lastinc);
|
||||
gd->arch.tbl += (now - gd->arch.lastinc);
|
||||
else /* we have rollover of incrementer */
|
||||
gd->arch.tbl += ((TIMER_LOAD_VAL / (TIMER_CLK / CONFIG_SYS_HZ))
|
||||
- gd->lastinc) + now;
|
||||
gd->lastinc = now;
|
||||
- gd->arch.lastinc) + now;
|
||||
gd->arch.lastinc = now;
|
||||
return gd->arch.tbl;
|
||||
}
|
||||
|
||||
|
@ -49,7 +49,7 @@ static struct mxc_gpt *cur_gpt = (struct mxc_gpt *)GPT1_BASE_ADDR;
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
||||
#define timestamp (gd->arch.tbl)
|
||||
#define lastinc (gd->lastinc)
|
||||
#define lastinc (gd->arch.lastinc)
|
||||
|
||||
static inline unsigned long long tick_to_time(unsigned long long tick)
|
||||
{
|
||||
|
@ -39,6 +39,7 @@ struct arch_global_data {
|
||||
unsigned long timer_rate_hz;
|
||||
unsigned long tbu;
|
||||
unsigned long tbl;
|
||||
unsigned long lastinc;
|
||||
};
|
||||
|
||||
/*
|
||||
@ -66,7 +67,6 @@ typedef struct global_data {
|
||||
#ifdef CONFIG_ARM
|
||||
/* "static data" needed by most of timer.c on ARM platforms */
|
||||
unsigned long long timer_reset_value;
|
||||
unsigned long lastinc;
|
||||
#endif
|
||||
#ifdef CONFIG_IXP425
|
||||
unsigned long timestamp;
|
||||
|
@ -34,7 +34,7 @@ static struct jz4740_tcu *tcu = (struct jz4740_tcu *)JZ4740_TCU_BASE;
|
||||
void reset_timer_masked(void)
|
||||
{
|
||||
/* reset time */
|
||||
gd->lastinc = readl(&tcu->tcnt0);
|
||||
gd->arch.lastinc = readl(&tcu->tcnt0);
|
||||
gd->arch.tbl = 0;
|
||||
}
|
||||
|
||||
@ -42,14 +42,14 @@ ulong get_timer_masked(void)
|
||||
{
|
||||
ulong now = readl(&tcu->tcnt0);
|
||||
|
||||
if (gd->lastinc <= now)
|
||||
gd->arch.tbl += now - gd->lastinc; /* normal mode */
|
||||
if (gd->arch.lastinc <= now)
|
||||
gd->arch.tbl += now - gd->arch.lastinc; /* normal mode */
|
||||
else {
|
||||
/* we have an overflow ... */
|
||||
gd->arch.tbl += TIMER_FDATA + now - gd->lastinc;
|
||||
gd->arch.tbl += TIMER_FDATA + now - gd->arch.lastinc;
|
||||
}
|
||||
|
||||
gd->lastinc = now;
|
||||
gd->arch.lastinc = now;
|
||||
|
||||
return gd->arch.tbl;
|
||||
}
|
||||
@ -94,7 +94,7 @@ int timer_init(void)
|
||||
writel(1 << TIMER_CHAN, &tcu->tscr); /* enable timer clock */
|
||||
writeb(1 << TIMER_CHAN, &tcu->tesr); /* start counting up */
|
||||
|
||||
gd->lastinc = 0;
|
||||
gd->arch.lastinc = 0;
|
||||
gd->arch.tbl = 0;
|
||||
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user