summaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-s5pc100/include/mach/entry-macro.S
diff options
context:
space:
mode:
authorRussell King <rmk@dyn-67.arm.linux.org.uk>2009-08-17 18:16:28 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2009-08-17 18:16:28 +0100
commit29c08460d472e427cec5e5dcb12ec74c923f8250 (patch)
tree9d8557fe9cf123920c3ceb023274e763e5f208b0 /arch/arm/mach-s5pc100/include/mach/entry-macro.S
parent9b2616c2e8cc98ca98bbb40cad83a8d3d859e840 (diff)
parentbaa28e3530375e0bef2c53243634a1c78f5c02f3 (diff)
downloadop-kernel-dev-29c08460d472e427cec5e5dcb12ec74c923f8250.zip
op-kernel-dev-29c08460d472e427cec5e5dcb12ec74c923f8250.tar.gz
Merge branch 'next-s3c' of git://aeryn.fluff.org.uk/bjdooks/linux into devel-stable
Diffstat (limited to 'arch/arm/mach-s5pc100/include/mach/entry-macro.S')
-rw-r--r--arch/arm/mach-s5pc100/include/mach/entry-macro.S50
1 files changed, 50 insertions, 0 deletions
diff --git a/arch/arm/mach-s5pc100/include/mach/entry-macro.S b/arch/arm/mach-s5pc100/include/mach/entry-macro.S
new file mode 100644
index 0000000..6713193
--- /dev/null
+++ b/arch/arm/mach-s5pc100/include/mach/entry-macro.S
@@ -0,0 +1,50 @@
+/* arch/arm/mach-s5pc100/include/mach/entry-macro.S
+ *
+ * Copyright 2009 Samsung Electronics Co.
+ * Byungho Min <bhmin@samsung.com>
+ *
+ * Based on mach-s3c6400/include/mach/entry-macro.S
+ *
+ * Low-level IRQ helper macros for the Samsung S5PC1XX series
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2. This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+*/
+
+#include <asm/hardware/vic.h>
+#include <mach/map.h>
+#include <plat/irqs.h>
+
+ .macro disable_fiq
+ .endm
+
+ .macro get_irqnr_preamble, base, tmp
+ ldr \base, =S3C_VA_VIC0
+ .endm
+
+ .macro arch_ret_to_user, tmp1, tmp2
+ .endm
+
+ .macro get_irqnr_and_base, irqnr, irqstat, base, tmp
+
+ @ check the vic0
+ mov \irqnr, # S3C_IRQ_OFFSET + 31
+ ldr \irqstat, [ \base, # VIC_IRQ_STATUS ]
+ teq \irqstat, #0
+
+ @ otherwise try vic1
+ addeq \tmp, \base, #(S3C_VA_VIC1 - S3C_VA_VIC0)
+ addeq \irqnr, \irqnr, #32
+ ldreq \irqstat, [ \tmp, # VIC_IRQ_STATUS ]
+ teqeq \irqstat, #0
+
+ @ otherwise try vic2
+ addeq \tmp, \base, #(S3C_VA_VIC2 - S3C_VA_VIC0)
+ addeq \irqnr, \irqnr, #32
+ ldreq \irqstat, [ \tmp, # VIC_IRQ_STATUS ]
+ teqeq \irqstat, #0
+
+ clzne \irqstat, \irqstat
+ subne \irqnr, \irqnr, \irqstat
+ .endm
OpenPOWER on IntegriCloud