Merge branch 'agp-next' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied...
[pandora-kernel.git] / arch / arm / mach-s5pc100 / include / mach / entry-macro.S
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.
13 */
14
15 #include <asm/hardware/vic.h>
16 #include <mach/map.h>
17 #include <plat/irqs.h>
18
19         .macro  disable_fiq
20         .endm
21
22         .macro  get_irqnr_preamble, base, tmp
23         ldr     \base, =S3C_VA_VIC0
24         .endm
25
26         .macro  arch_ret_to_user, tmp1, tmp2
27         .endm
28
29         .macro  get_irqnr_and_base, irqnr, irqstat, base, tmp
30
31         @ check the vic0
32         mov     \irqnr, # S3C_IRQ_OFFSET + 31
33         ldr     \irqstat, [ \base, # VIC_IRQ_STATUS ]
34         teq     \irqstat, #0
35
36         @ otherwise try vic1
37         addeq   \tmp, \base, #(S3C_VA_VIC1 - S3C_VA_VIC0)
38         addeq   \irqnr, \irqnr, #32
39         ldreq   \irqstat, [ \tmp, # VIC_IRQ_STATUS ]
40         teqeq   \irqstat, #0
41
42         @ otherwise try vic2
43         addeq   \tmp, \base, #(S3C_VA_VIC2 - S3C_VA_VIC0)
44         addeq   \irqnr, \irqnr, #32
45         ldreq   \irqstat, [ \tmp, # VIC_IRQ_STATUS ]
46         teqeq   \irqstat, #0
47
48         clzne   \irqstat, \irqstat
49         subne   \irqnr, \irqnr, \irqstat
50         .endm