i386: Fix race condition when using SC520 timers
authorGraeme Russ <graeme.russ@gmail.com>
Tue, 24 Nov 2009 09:04:17 +0000 (20:04 +1100)
committerWolfgang Denk <wd@denx.de>
Sat, 5 Dec 2009 00:02:58 +0000 (01:02 +0100)
Signed-off-by: Graeme Russ <graeme.russ@gmail.com>
cpu/i386/sc520/sc520_timer.c

index 23de14b..25c9a24 100644 (file)
@@ -35,6 +35,12 @@ void sc520_timer_isr(void)
 
 int timer_init(void)
 {
+       /* Register the SC520 specific timer interrupt handler */
+       register_timer_isr (sc520_timer_isr);
+
+       /* Install interrupt handler for GP Timer 1 */
+       irq_install_handler (0, timer_isr, NULL);
+
        /* Map GP Timer 1 to Master PIC IR0  */
        sc520_mmcr->gp_tmr_int_map[1] = 0x01;
 
@@ -54,11 +60,6 @@ int timer_init(void)
        sc520_mmcr->gptmr1maxcmpa = 100;
        sc520_mmcr->gptmr1ctl = 0xe009;
 
-       /* Register the SC520 specific timer interrupt handler */
-       register_timer_isr (sc520_timer_isr);
-
-       /* Install interrupt handler for GP Timer 1 */
-       irq_install_handler (0, timer_isr, NULL);
        unmask_irq (0);
 
        /* Clear the GP Timer 1 status register to get the show rolling*/