Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland...
[linux-2.6] / arch / arm / mach-imx / include / mach / entry-macro.S
1 /*
2  * arch/arm/mach-imx/include/mach/entry-macro.S
3  *
4  * Low-level IRQ helper macros for iMX-based platforms
5  *
6  * This file is licensed under  the terms of the GNU General Public
7  * License version 2. This program is licensed "as is" without any
8  * warranty of any kind, whether express or implied.
9  */
10 #include <mach/hardware.h>
11
12                 .macro  disable_fiq
13                 .endm
14
15                 .macro  get_irqnr_preamble, base, tmp
16                 .endm
17
18                 .macro  arch_ret_to_user, tmp1, tmp2
19                 .endm
20
21 #define AITC_NIVECSR   0x40
22                 .macro  get_irqnr_and_base, irqnr, irqstat, base, tmp
23                 ldr     \base, =IO_ADDRESS(IMX_AITC_BASE)
24                 @ Load offset & priority of the highest priority
25                 @ interrupt pending.
26                 ldr     \irqstat, [\base, #AITC_NIVECSR]
27                 @ Shift off the priority leaving the offset or
28                 @ "interrupt number", use arithmetic shift to
29                 @ transform illegal source (0xffff) as -1
30                 mov     \irqnr, \irqstat, asr #16
31                 adds    \tmp, \irqnr, #1
32                 .endm