From 584538d081e54c546cfe08164e669327afba92c2 Mon Sep 17 00:00:00 2001 From: Nicolas Pitre Date: Mon, 20 Nov 2006 22:19:29 +0100 Subject: [PATCH] --- yaml --- r: 43380 b: refs/heads/master c: 46ec0ce8ce7eab6242188ea8a596538753c53b22 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/arm/mach-pxa/time.c | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 6139a76f0a5d..1e1d7be827f9 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: bf46878c4ef4cf04a3564f0ff2e7daae353ee2e2 +refs/heads/master: 46ec0ce8ce7eab6242188ea8a596538753c53b22 diff --git a/trunk/arch/arm/mach-pxa/time.c b/trunk/arch/arm/mach-pxa/time.c index 3ac268fa419b..b91466861029 100644 --- a/trunk/arch/arm/mach-pxa/time.c +++ b/trunk/arch/arm/mach-pxa/time.c @@ -124,6 +124,7 @@ static struct irqaction pxa_timer_irq = { static void __init pxa_timer_init(void) { struct timespec tv; + unsigned long flags; set_rtc = pxa_set_rtc; @@ -132,12 +133,12 @@ static void __init pxa_timer_init(void) do_settimeofday(&tv); OIER = 0; /* disable any timer interrupts */ - OSCR = LATCH*2; /* push OSCR out of the way */ - OSMR0 = LATCH; /* set initial match */ OSSR = 0xf; /* clear status on all timers */ setup_irq(IRQ_OST0, &pxa_timer_irq); + local_irq_save(flags); OIER = OIER_E0; /* enable match on timer 0 to cause interrupts */ - OSCR = 0; /* initialize free-running timer */ + OSMR0 = OSCR + LATCH; /* set initial match */ + local_irq_restore(flags); } #ifdef CONFIG_NO_IDLE_HZ