Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/arm/mach-ep93xx/include/mach/entry-macro.S
15157 views
1
/*
2
* arch/arm/mach-ep93xx/include/mach/entry-macro.S
3
* IRQ demultiplexing for EP93xx
4
*
5
* Copyright (C) 2006 Lennert Buytenhek <[email protected]>
6
*
7
* This program is free software; you can redistribute it and/or modify
8
* it under the terms of the GNU General Public License as published by
9
* the Free Software Foundation; either version 2 of the License, or (at
10
* your option) any later version.
11
*/
12
#include <mach/ep93xx-regs.h>
13
14
.macro disable_fiq
15
.endm
16
17
.macro get_irqnr_preamble, base, tmp
18
.endm
19
20
.macro arch_ret_to_user, tmp1, tmp2
21
.endm
22
23
.macro get_irqnr_and_base, irqnr, irqstat, base, tmp
24
ldr \base, =(EP93XX_AHB_VIRT_BASE)
25
orr \base, \base, #0x000b0000
26
mov \irqnr, #0
27
ldr \irqstat, [\base] @ lower 32 interrupts
28
cmp \irqstat, #0
29
bne 1001f
30
31
eor \base, \base, #0x00070000
32
ldr \irqstat, [\base] @ upper 32 interrupts
33
cmp \irqstat, #0
34
beq 1002f
35
mov \irqnr, #0x20
36
37
1001:
38
movs \tmp, \irqstat, lsl #16
39
movne \irqstat, \tmp
40
addeq \irqnr, \irqnr, #16
41
42
movs \tmp, \irqstat, lsl #8
43
movne \irqstat, \tmp
44
addeq \irqnr, \irqnr, #8
45
46
movs \tmp, \irqstat, lsl #4
47
movne \irqstat, \tmp
48
addeq \irqnr, \irqnr, #4
49
50
movs \tmp, \irqstat, lsl #2
51
movne \irqstat, \tmp
52
addeq \irqnr, \irqnr, #2
53
54
movs \tmp, \irqstat, lsl #1
55
addeq \irqnr, \irqnr, #1
56
orrs \base, \base, #1
57
58
1002:
59
.endm
60
61