diff options
author | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-07 18:40:39 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.osdl.org> | 2006-12-07 18:40:39 -0500 |
commit | ea14fad0d416354a4e9bb1a04f32acba706f9548 (patch) | |
tree | 2c8acc5331f189aef1d40ddce3f40d6be9314e77 /arch/arm/mach-sa1100/time.c | |
parent | 6ee7e78e7c78d871409ad4df30551c9355be7d0e (diff) | |
parent | 6705cda24fad1cb0ac82ac4f312df8ec735b39b0 (diff) |
Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm
* 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm: (76 commits)
[ARM] 4002/1: S3C24XX: leave parent IRQs unmasked
[ARM] 4001/1: S3C24XX: shorten reboot time
[ARM] 3983/2: remove unused argument to __bug()
[ARM] 4000/1: Osiris: add third serial port in
[ARM] 3999/1: RX3715: suspend to RAM support
[ARM] 3998/1: VR1000: LED platform devices
[ARM] 3995/1: iop13xx: add iop13xx support
[ARM] 3968/1: iop13xx: add iop13xx_defconfig
[ARM] Update mach-types
[ARM] Allow gcc to optimise arm_add_memory a little more
[ARM] 3991/1: i.MX/MX1 high resolution time source
[ARM] 3990/1: i.MX/MX1 more precise PLL decode
[ARM] 3986/1: H1940: suspend to RAM support
[ARM] 3985/1: ixp4xx clocksource cleanup
[ARM] 3984/1: ixp4xx/nslu2: Fix disk LED numbering (take 2)
[ARM] 3994/1: ixp23xx: fix handling of pci master aborts
[ARM] 3981/1: sched_clock for PXA2xx
[ARM] 3980/1: extend the ARM Versatile sched_clock implementation from 32 to 63 bit
[ARM] 3979/1: extend the SA11x0 sched_clock implementation from 32 to 63 bit period
[ARM] 3978/1: macro to provide a 63-bit value from a 32-bit hardware counter
...
Diffstat (limited to 'arch/arm/mach-sa1100/time.c')
-rw-r--r-- | arch/arm/mach-sa1100/time.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/arch/arm/mach-sa1100/time.c b/arch/arm/mach-sa1100/time.c index 4284bd6f7a1f..29c89f9eb2ce 100644 --- a/arch/arm/mach-sa1100/time.c +++ b/arch/arm/mach-sa1100/time.c | |||
@@ -118,6 +118,7 @@ static struct irqaction sa1100_timer_irq = { | |||
118 | static void __init sa1100_timer_init(void) | 118 | static void __init sa1100_timer_init(void) |
119 | { | 119 | { |
120 | struct timespec tv; | 120 | struct timespec tv; |
121 | unsigned long flags; | ||
121 | 122 | ||
122 | set_rtc = sa1100_set_rtc; | 123 | set_rtc = sa1100_set_rtc; |
123 | 124 | ||
@@ -126,12 +127,12 @@ static void __init sa1100_timer_init(void) | |||
126 | do_settimeofday(&tv); | 127 | do_settimeofday(&tv); |
127 | 128 | ||
128 | OIER = 0; /* disable any timer interrupts */ | 129 | OIER = 0; /* disable any timer interrupts */ |
129 | OSCR = LATCH*2; /* push OSCR out of the way */ | ||
130 | OSMR0 = LATCH; /* set initial match */ | ||
131 | OSSR = 0xf; /* clear status on all timers */ | 130 | OSSR = 0xf; /* clear status on all timers */ |
132 | setup_irq(IRQ_OST0, &sa1100_timer_irq); | 131 | setup_irq(IRQ_OST0, &sa1100_timer_irq); |
132 | local_irq_save(flags); | ||
133 | OIER = OIER_E0; /* enable match on timer 0 to cause interrupts */ | 133 | OIER = OIER_E0; /* enable match on timer 0 to cause interrupts */ |
134 | OSCR = 0; /* initialize free-running timer */ | 134 | OSMR0 = OSCR + LATCH; /* set initial match */ |
135 | local_irq_restore(flags); | ||
135 | } | 136 | } |
136 | 137 | ||
137 | #ifdef CONFIG_NO_IDLE_HZ | 138 | #ifdef CONFIG_NO_IDLE_HZ |