diff options
author | Russell King <rmk@dyn-67.arm.linux.org.uk> | 2009-08-17 18:16:28 +0100 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2009-08-17 18:16:28 +0100 |
commit | 29c08460d472e427cec5e5dcb12ec74c923f8250 (patch) | |
tree | 9d8557fe9cf123920c3ceb023274e763e5f208b0 /arch/arm/mach-s5pc100/include/mach/entry-macro.S | |
parent | 9b2616c2e8cc98ca98bbb40cad83a8d3d859e840 (diff) | |
parent | baa28e3530375e0bef2c53243634a1c78f5c02f3 (diff) | |
download | op-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.S | 50 |
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 |