microblaze: Fix msr handling in interrupt_handler
authorMichal Simek <monstr@monstr.eu>
Mon, 7 Feb 2011 09:33:50 +0000 (10:33 +0100)
committerMichal Simek <monstr@monstr.eu>
Tue, 15 Feb 2011 14:13:24 +0000 (15:13 +0100)
Fix ancient code which worked with MSR in a bad way.
Use rtid instruction which enable IRQs and jump.

Signed-off-by: Michal Simek <monstr@monstr.eu>
arch/microblaze/cpu/irq.S

index 47bba36..8c76a73 100644 (file)
@@ -60,7 +60,6 @@ _interrupt_handler:
        addik   r1, r1, -124
        brlid   r15, interrupt_handler
        nop
-       nop
        addik   r1, r1, 124
        lwi     r31, r1, -120
        lwi     r30, r1, -116
@@ -93,22 +92,6 @@ _interrupt_handler:
        lwi     r3, r1, -8
        lwi     r2, r1, -4
 
-       /* enable_interrupt */
-#ifdef XILINX_USE_MSR_INSTR
-       msrset  r0, 2
-#else
-       /* FIXME unstable in stressed mode - two irqs */
-       nop
-       addi    r1, r1, -4
-       swi     r12, r1, 0
-       mfs     r12, rmsr
-       ori     r12, r12, 2
-       mts     rmsr, r12
-       lwi     r12, r1, 0
-       addi    r1, r1, 4
-       nop
-#endif
-       bra     r14
-       nop
+       rtid    r14, 0
        nop
        .size _interrupt_handler,.-_interrupt_handler