Merge remote-tracking branch 's5p/for-next'
[linux-2.6/next.git] / arch / arm / mach-gemini / include / mach / entry-macro.S
blob1624f91a2b8bd037304ade2e5b7bc00d083b71ad
1 /*
2  * Low-level IRQ helper macros for Gemini platform.
3  *
4  *  Copyright (C) 2001-2006 Storlink, Corp.
5  *  Copyright (C) 2008-2009 Paulius Zaleckas <paulius.zaleckas@teltonika.lt>
6  *
7  * This file is licensed under  the terms of the GNU General Public
8  * License version 2. This program is licensed "as is" without any
9  * warranty of any kind, whether express or implied.
10  */
11 #include <mach/hardware.h>
13 #define IRQ_STATUS      0x14
15         .macro  disable_fiq
16         .endm
18         .macro  get_irqnr_preamble, base, tmp
19         .endm
21         .macro  arch_ret_to_user, tmp1, tmp2
22         .endm
24         .macro  get_irqnr_and_base, irqnr, irqstat, base, tmp
25         ldr     \irqstat, =IO_ADDRESS(GEMINI_INTERRUPT_BASE + IRQ_STATUS)
26         ldr     \irqnr, [\irqstat]
27         cmp     \irqnr, #0
28         beq     2313f
29         mov     \tmp, \irqnr
30         mov     \irqnr, #0
31 2312:
32         tst     \tmp, #1
33         bne     2313f
34         add     \irqnr, \irqnr, #1
35         mov     \tmp, \tmp, lsr #1
36         cmp     \irqnr, #31
37         bcc     2312b
38 2313:
39         .endm