summaryrefslogtreecommitdiffstats
path: root/arch/arm/plat-omap/include/mach/entry-macro.S
diff options
context:
space:
mode:
authorSantosh Shilimkar2009-04-28 17:22:00 +0200
committerSantosh Shilimkar2009-06-09 09:33:59 +0200
commit39e1d4c18f34190c739f765ae56bfaa9cbbc6fdb (patch)
treefda67a3e47370f2f4a118b587c33b86b15a231fd /arch/arm/plat-omap/include/mach/entry-macro.S
parentARM: OMAP4: SMP: Add OMAP4430 SMP board files (diff)
downloadkernel-qcow2-linux-39e1d4c18f34190c739f765ae56bfaa9cbbc6fdb.tar.gz
kernel-qcow2-linux-39e1d4c18f34190c739f765ae56bfaa9cbbc6fdb.tar.xz
kernel-qcow2-linux-39e1d4c18f34190c739f765ae56bfaa9cbbc6fdb.zip
ARM: OMAP4: SMP: Add mpu timer support for OMAP4430
This patch adds SMP platform specific parts for local(mpu) timer support for OMAP4430 platform. Each Cortex-a9 core has it's own local timer in the MPU domain. These timers are not in wakeup domain. Signed-off-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Diffstat (limited to 'arch/arm/plat-omap/include/mach/entry-macro.S')
-rw-r--r--arch/arm/plat-omap/include/mach/entry-macro.S28
1 files changed, 28 insertions, 0 deletions
diff --git a/arch/arm/plat-omap/include/mach/entry-macro.S b/arch/arm/plat-omap/include/mach/entry-macro.S
index 00f45c01390d..56426ed45ef4 100644
--- a/arch/arm/plat-omap/include/mach/entry-macro.S
+++ b/arch/arm/plat-omap/include/mach/entry-macro.S
@@ -136,6 +136,34 @@
cmpne \irqnr, \tmp
cmpcs \irqnr, \irqnr
.endm
+
+ /* We assume that irqstat (the raw value of the IRQ acknowledge
+ * register) is preserved from the macro above.
+ * If there is an IPI, we immediately signal end of interrupt
+ * on the controller, since this requires the original irqstat
+ * value which we won't easily be able to recreate later.
+ */
+
+ .macro test_for_ipi, irqnr, irqstat, base, tmp
+ bic \irqnr, \irqstat, #0x1c00
+ cmp \irqnr, #16
+ it cc
+ strcc \irqstat, [\base, #GIC_CPU_EOI]
+ it cs
+ cmpcs \irqnr, \irqnr
+ .endm
+
+ /* As above, this assumes that irqstat and base are preserved */
+
+ .macro test_for_ltirq, irqnr, irqstat, base, tmp
+ bic \irqnr, \irqstat, #0x1c00
+ mov \tmp, #0
+ cmp \irqnr, #29
+ itt eq
+ moveq \tmp, #1
+ streq \irqstat, [\base, #GIC_CPU_EOI]
+ cmp \tmp, #0
+ .endm
#endif
.macro irq_prio_table