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
fedora core 2.6.10-1.12-FC2
[linux-2.6.git]
/
arch
/
arm
/
mach-epxa10db
/
time.c
diff --git
a/arch/arm/mach-epxa10db/time.c
b/arch/arm/mach-epxa10db/time.c
index
7d72a43
..
1b991f3
100644
(file)
--- a/
arch/arm/mach-epxa10db/time.c
+++ b/
arch/arm/mach-epxa10db/time.c
@@
-43,11
+43,13
@@
__initcall(epxa10db_rtc_init);
static irqreturn_t
epxa10db_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
static irqreturn_t
epxa10db_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
{
+ write_seqlock(&xtime_lock);
// ...clear the interrupt
*TIMER0_CR(IO_ADDRESS(EXC_TIMER00_BASE))|=TIMER0_CR_CI_MSK;
timer_tick(regs);
// ...clear the interrupt
*TIMER0_CR(IO_ADDRESS(EXC_TIMER00_BASE))|=TIMER0_CR_CI_MSK;
timer_tick(regs);
+ write_sequnlock(&xtime_lock);
return IRQ_HANDLED;
}
return IRQ_HANDLED;
}
@@
-61,7
+63,7
@@
static struct irqaction epxa10db_timer_irq = {
/*
* Set up timer interrupt, and return the current time in seconds.
*/
/*
* Set up timer interrupt, and return the current time in seconds.
*/
-
void __init epxa10db_init_time
(void)
+
static void __init epxa10db_timer_init
(void)
{
/* Start the timer */
*TIMER0_LIMIT(IO_ADDRESS(EXC_TIMER00_BASE))=(unsigned int)(EXC_AHB2_CLK_FREQUENCY/200);
{
/* Start the timer */
*TIMER0_LIMIT(IO_ADDRESS(EXC_TIMER00_BASE))=(unsigned int)(EXC_AHB2_CLK_FREQUENCY/200);
@@
-71,3
+73,6
@@
void __init epxa10db_init_time(void)
setup_irq(IRQ_TIMER0, &epxa10db_timer_irq);
}
setup_irq(IRQ_TIMER0, &epxa10db_timer_irq);
}
+struct sys_timer epxa10db_timer = {
+ .init = epxa10db_timer_init,
+};