Merge branch 'for-linus' of master.kernel.org:/pub/scm/linux/kernel/git/dtor/input
[linux-2.6] / include / asm-arm / arch-imx / entry-macro.S
1 /*
2  * include/asm-arm/arch-imx/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 <asm/hardware.h>
11
12                 .macro  disable_fiq
13                 .endm
14 #define AITC_NIVECSR   0x40
15                 .macro  get_irqnr_and_base, irqnr, irqstat, base, tmp
16                 ldr     \base, =IO_ADDRESS(IMX_AITC_BASE)
17                 @ Load offset & priority of the highest priority
18                 @ interrupt pending.
19                 ldr     \irqstat, [\base, #AITC_NIVECSR]
20                 @ Shift off the priority leaving the offset or
21                 @ "interrupt number", use arithmetic shift to
22                 @ transform illegal source (0xffff) as -1
23                 mov     \irqnr, \irqstat, asr #16
24                 adds    \tmp, \irqnr, #1
25                 .endm