Merge branch 'next-s3c64xx' into next-merged
[linux-2.6] / arch / arm / mach-s3c6400 / include / mach / entry-macro.S
1 /* arch/arm/mach-s3c6400/include/mach/entry-macro.S
2  *
3  * Copyright 2008 Openmoko, Inc.
4  * Copyright 2008 Simtec Electronics
5  *      http://armlinux.simtec.co.uk/
6  *      Ben Dooks <ben@simtec.co.uk>
7  *
8  * Low-level IRQ helper macros for the Samsung S3C64XX 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         clzne   \irqstat, \irqstat
43         subne   \irqnr, \irqnr, \irqstat
44         .endm