git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vserver 1.9.5.x5
[linux-2.6.git]
/
arch
/
arm
/
mach-lh7a40x
/
time.c
diff --git
a/arch/arm/mach-lh7a40x/time.c
b/arch/arm/mach-lh7a40x/time.c
index
61ada24
..
51e1c81
100644
(file)
--- a/
arch/arm/mach-lh7a40x/time.c
+++ b/
arch/arm/mach-lh7a40x/time.c
@@
-20,14
+20,15
@@
#include <asm/leds.h>
#include <asm/mach/time.h>
#include <asm/leds.h>
#include <asm/mach/time.h>
+#include "common.h"
#if HZ < 100
#if HZ < 100
-# define TIMER_CONTROL TIMER_CONTROL
1
-# define TIMER_LOAD TIMER_LOAD
1
+# define TIMER_CONTROL TIMER_CONTROL
2
+# define TIMER_LOAD TIMER_LOAD
2
# define TIMER_CONSTANT (508469/HZ)
# define TIMER_MODE (TIMER_C_ENABLE | TIMER_C_PERIODIC | TIMER_C_508KHZ)
# define TIMER_CONSTANT (508469/HZ)
# define TIMER_MODE (TIMER_C_ENABLE | TIMER_C_PERIODIC | TIMER_C_508KHZ)
-# define TIMER_EOI TIMER_EOI
1
-# define TIMER_IRQ IRQ_T
1
UI
+# define TIMER_EOI TIMER_EOI
2
+# define TIMER_IRQ IRQ_T
2
UI
#else
# define TIMER_CONTROL TIMER_CONTROL3
# define TIMER_LOAD TIMER_LOAD3
#else
# define TIMER_CONTROL TIMER_CONTROL3
# define TIMER_LOAD TIMER_LOAD3
@@
-40,9
+41,13
@@
static irqreturn_t
lh7a40x_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
static irqreturn_t
lh7a40x_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
+ write_seqlock(&xtime_lock);
+
TIMER_EOI = 0;
timer_tick(regs);
TIMER_EOI = 0;
timer_tick(regs);
+ write_sequnlock(&xtime_lock);
+
return IRQ_HANDLED;
}
return IRQ_HANDLED;
}
@@
-52,7
+57,7
@@
static struct irqaction lh7a40x_timer_irq = {
.handler = lh7a40x_timer_interrupt
};
.handler = lh7a40x_timer_interrupt
};
-
void __init lh7a40x_init_time
(void)
+
static void __init lh7a40x_timer_init
(void)
{
/* Stop/disable all timers */
TIMER_CONTROL1 = 0;
{
/* Stop/disable all timers */
TIMER_CONTROL1 = 0;
@@
-65,3
+70,6
@@
void __init lh7a40x_init_time(void)
TIMER_CONTROL = TIMER_MODE;
}
TIMER_CONTROL = TIMER_MODE;
}
+struct sys_timer lh7a40x_timer = {
+ .init = &lh7a40x_timer_init,
+};