summaryrefslogtreecommitdiffstats
path: root/arch/blackfin/include/asm/entry.h
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-01-11 00:51:06 +0100
committerIngo Molnar <mingo@elte.hu>2009-01-11 00:51:06 +0100
commit0811a433c61e85f895018239c4466a36311cd5de (patch)
tree276933e518e5525d24ae37b02df2db9909679260 /arch/blackfin/include/asm/entry.h
parentc299030765292434b73572f9bcfe84951ff06614 (diff)
parent3d14bdad40315b54470cb7812293d14c8af2bf7d (diff)
downloadlinux-0811a433c61e85f895018239c4466a36311cd5de.tar.gz
linux-0811a433c61e85f895018239c4466a36311cd5de.tar.bz2
linux-0811a433c61e85f895018239c4466a36311cd5de.zip
Merge branch 'linus' into core/iommu
Diffstat (limited to 'arch/blackfin/include/asm/entry.h')
-rw-r--r--arch/blackfin/include/asm/entry.h11
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/blackfin/include/asm/entry.h b/arch/blackfin/include/asm/entry.h
index c4f721e0d00d..b30a2968e274 100644
--- a/arch/blackfin/include/asm/entry.h
+++ b/arch/blackfin/include/asm/entry.h
@@ -27,6 +27,14 @@
#define SAVE_ALL_SYS save_context_no_interrupts
/* This is used for all normal interrupts. It saves a minimum of registers
to the stack, loads the IRQ number, and jumps to common code. */
+#ifdef CONFIG_IPIPE
+# define LOAD_IPIPE_IPEND \
+ P0.l = lo(IPEND); \
+ P0.h = hi(IPEND); \
+ R1 = [P0];
+#else
+# define LOAD_IPIPE_IPEND
+#endif
#define INTERRUPT_ENTRY(N) \
[--sp] = SYSCFG; \
\
@@ -34,6 +42,7 @@
[--sp] = R0; /*orig_r0*/ \
[--sp] = (R7:0,P5:0); \
R0 = (N); \
+ LOAD_IPIPE_IPEND \
jump __common_int_entry;
/* For timer interrupts, we need to save IPEND, since the user_mode
@@ -53,9 +62,11 @@
/* This one pushes RETI without using CLI. Interrupts are enabled. */
#define SAVE_CONTEXT_SYSCALL save_context_syscall
#define SAVE_CONTEXT save_context_with_interrupts
+#define SAVE_CONTEXT_CPLB save_context_cplb
#define RESTORE_ALL_SYS restore_context_no_interrupts
#define RESTORE_CONTEXT restore_context_with_interrupts
+#define RESTORE_CONTEXT_CPLB restore_context_cplb
#endif /* __ASSEMBLY__ */
#endif /* __BFIN_ENTRY_H */