Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/arm/mach-nomadik/include/mach/entry-macro.S
10820 views
1
/*
2
* Low-level IRQ helper macros for Nomadik platforms
3
*
4
* This file is licensed under the terms of the GNU General Public
5
* License version 2. This program is licensed "as is" without any
6
* warranty of any kind, whether express or implied.
7
*/
8
9
#include <mach/hardware.h>
10
#include <mach/irqs.h>
11
12
.macro disable_fiq
13
.endm
14
15
.macro get_irqnr_preamble, base, tmp
16
ldr \base, =IO_ADDRESS(NOMADIK_IC_BASE)
17
.endm
18
19
.macro arch_ret_to_user, tmp1, tmp2
20
.endm
21
22
.macro get_irqnr_and_base, irqnr, irqstat, base, tmp
23
24
/* This stanza gets the irq mask from one of two status registers */
25
mov \irqnr, #0
26
ldr \irqstat, [\base, #VIC_REG_IRQSR0] @ get masked status
27
cmp \irqstat, #0
28
bne 1001f
29
add \irqnr, \irqnr, #32
30
ldr \irqstat, [\base, #VIC_REG_IRQSR1] @ get masked status
31
32
1001: tst \irqstat, #15
33
bne 1002f
34
add \irqnr, \irqnr, #4
35
movs \irqstat, \irqstat, lsr #4
36
bne 1001b
37
1002: tst \irqstat, #1
38
bne 1003f
39
add \irqnr, \irqnr, #1
40
movs \irqstat, \irqstat, lsr #1
41
bne 1002b
42
1003: /* EQ will be set if no irqs pending */
43
.endm
44
45