Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/arm/mach-gemini/include/mach/entry-macro.S
10820 views
1
/*
2
* Low-level IRQ helper macros for Gemini platform.
3
*
4
* Copyright (C) 2001-2006 Storlink, Corp.
5
* Copyright (C) 2008-2009 Paulius Zaleckas <[email protected]>
6
*
7
* This file is licensed under the terms of the GNU General Public
8
* License version 2. This program is licensed "as is" without any
9
* warranty of any kind, whether express or implied.
10
*/
11
#include <mach/hardware.h>
12
13
#define IRQ_STATUS 0x14
14
15
.macro disable_fiq
16
.endm
17
18
.macro get_irqnr_preamble, base, tmp
19
.endm
20
21
.macro arch_ret_to_user, tmp1, tmp2
22
.endm
23
24
.macro get_irqnr_and_base, irqnr, irqstat, base, tmp
25
ldr \irqstat, =IO_ADDRESS(GEMINI_INTERRUPT_BASE + IRQ_STATUS)
26
ldr \irqnr, [\irqstat]
27
cmp \irqnr, #0
28
beq 2313f
29
mov \tmp, \irqnr
30
mov \irqnr, #0
31
2312:
32
tst \tmp, #1
33
bne 2313f
34
add \irqnr, \irqnr, #1
35
mov \tmp, \tmp, lsr #1
36
cmp \irqnr, #31
37
bcc 2312b
38
2313:
39
.endm
40
41