Merge branch 'v6v7' into devel
[linux/fpc-iii.git] / arch / arm / mach-s5pc100 / include / mach / entry-macro.S
blobba76af052c81fac1183584e33bf0e337246f9d48
1 /* arch/arm/mach-s5pc100/include/mach/entry-macro.S
2  *
3  * Copyright 2009 Samsung Electronics Co.
4  *      Byungho Min <bhmin@samsung.com>
5  *
6  * Based on mach-s3c6400/include/mach/entry-macro.S
7  *
8  * Low-level IRQ helper macros for the Samsung S5PC1XX series
9  *
10  * This file is licensed under  the terms of the GNU General Public
11  * License version 2. This program is licensed "as is" without any
12  * warranty of any kind, whether express or implied.
15 #include <asm/hardware/vic.h>
16 #include <mach/map.h>
17 #include <plat/irqs.h>
19         .macro  disable_fiq
20         .endm
22         .macro  get_irqnr_preamble, base, tmp
23         ldr     \base, =VA_VIC0
24         .endm
26         .macro  arch_ret_to_user, tmp1, tmp2
27         .endm
29         .macro  get_irqnr_and_base, irqnr, irqstat, base, tmp
31         @ check the vic0
32         mov     \irqnr, # S5P_IRQ_OFFSET + 31
33         ldr     \irqstat, [ \base, # VIC_IRQ_STATUS ]
34         teq     \irqstat, #0
36         @ otherwise try vic1
37         addeq   \tmp, \base, #(VA_VIC1 - VA_VIC0)
38         addeq   \irqnr, \irqnr, #32
39         ldreq   \irqstat, [ \tmp, # VIC_IRQ_STATUS ]
40         teqeq   \irqstat, #0
42         @ otherwise try vic2
43         addeq   \tmp, \base, #(VA_VIC2 - VA_VIC0)
44         addeq   \irqnr, \irqnr, #32
45         ldreq   \irqstat, [ \tmp, # VIC_IRQ_STATUS ]
46         teqeq   \irqstat, #0
48         clzne   \irqstat, \irqstat
49         subne   \irqnr, \irqnr, \irqstat
50         .endm