Commit | Line | Data |
---|---|---|
1da177e4 | 1 | /* |
3f7e5815 | 2 | * include/asm-arm/arch-iop33x/entry-macro.S |
1da177e4 | 3 | * |
3f7e5815 | 4 | * Low-level IRQ helper macros for IOP33x-based platforms |
1da177e4 | 5 | * |
c852ac80 | 6 | * This file is licensed under the terms of the GNU General Public |
1da177e4 LT |
7 | * License version 2. This program is licensed "as is" without any |
8 | * warranty of any kind, whether express or implied. | |
9 | */ | |
c852ac80 | 10 | #include <asm/arch/iop33x.h> |
1da177e4 | 11 | |
f80dff9d DW |
12 | .macro disable_fiq |
13 | .endm | |
1da177e4 | 14 | |
f80dff9d DW |
15 | .macro get_irqnr_preamble, base, tmp |
16 | mrc p15, 0, \tmp, c15, c1, 0 | |
17 | orr \tmp, \tmp, #(1 << 6) | |
18 | mcr p15, 0, \tmp, c15, c1, 0 @ Enable cp6 access | |
19 | mrc p15, 0, \tmp, c15, c1, 0 | |
20 | mov \tmp, \tmp | |
21 | sub pc, pc, #4 @ cp_wait | |
22 | .endm | |
23 | ||
24 | .macro get_irqnr_and_base, irqnr, irqstat, base, tmp | |
25 | mrc p6, 0, \irqstat, c14, c0, 0 @ Read IINTVEC | |
26 | cmp \irqstat, #0 | |
27 | mrceq p6, 0, \irqstat, c14, c0, 0 @ erratum 63 workaround | |
28 | adds \irqnr, \irqstat, #1 | |
29 | movne \irqnr, \irqstat, lsr #2 | |
30 | .endm | |
31 | ||
32 | .macro arch_ret_to_user, tmp1, tmp2 | |
33 | mrc p15, 0, \tmp1, c15, c1, 0 | |
34 | ands \tmp2, \tmp1, #(1 << 6) | |
35 | bicne \tmp1, \tmp1, #(1 << 6) | |
36 | mcrne p15, 0, \tmp1, c15, c1, 0 @ Disable cp6 access | |
37 | .endm |