block/genhd.c: cleanups
[pv_ops_mirror.git] / include / asm-arm / arch-imx / entry-macro.S
blob0b84e81031c34f75a5d9223001e46626a3c20c31
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>
12                 .macro  disable_fiq
13                 .endm
15                 .macro  get_irqnr_preamble, base, tmp
16                 .endm
18                 .macro  arch_ret_to_user, tmp1, tmp2
19                 .endm
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