]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - include/asm-arm/assembler.h
Merge master.kernel.org:/pub/scm/linux/kernel/git/davej/cpufreq
[linux-2.6-omap-h63xx.git] / include / asm-arm / assembler.h
index f31ac92b6c7f1c0f69dc90e861a0bad367ff6c5e..d53bafa9bf1c58f80fffdb2910571d3544340e1d 100644 (file)
        instr   regs
 
 /*
- * Save the current IRQ state and disable IRQs.  Note that this macro
- * assumes FIQs are enabled, and that the processor is in SVC mode.
+ * Enable and disable interrupts
  */
-       .macro  save_and_disable_irqs, oldcpsr
-       mrs     \oldcpsr, cpsr
 #if __LINUX_ARM_ARCH__ >= 6
+       .macro  disable_irq
        cpsid   i
+       .endm
+
+       .macro  enable_irq
+       cpsie   i
+       .endm
 #else
-       msr     cpsr_c, #PSR_I_BIT | MODE_SVC
+       .macro  disable_irq
+       msr     cpsr_c, #PSR_I_BIT | SVC_MODE
+       .endm
+
+       .macro  enable_irq
+       msr     cpsr_c, #SVC_MODE
+       .endm
 #endif
+
+/*
+ * Save the current IRQ state and disable IRQs.  Note that this macro
+ * assumes FIQs are enabled, and that the processor is in SVC mode.
+ */
+       .macro  save_and_disable_irqs, oldcpsr
+       mrs     \oldcpsr, cpsr
+       disable_irq
        .endm
 
 /*