1
2
3
4
5
6
7
8
9
10#include <mach/hardware.h>
11
12 .macro get_irqnr_preamble, base, tmp
13 .endm
14
15 .macro get_irqnr_and_base, irqnr, irqstat, base, tmp
16 ldr \irqstat, =(IXP4XX_INTC_BASE_VIRT+IXP4XX_ICIP_OFFSET)
17 ldr \irqstat, [\irqstat] @ get interrupts
18 cmp \irqstat,
19 beq 1001f @ upper IRQ?
20 clz \irqnr, \irqstat
21 mov \base,
22 sub \irqnr, \base, \irqnr
23 b 1002f @ lower IRQ being
24 @ handled
25
261001:
27
28
29
30
31 ldr \irqstat, =(IXP4XX_INTC_BASE_VIRT+IXP4XX_ICIP2_OFFSET)
32 ldr \irqstat, [\irqstat] @ get upper interrupts
33 mov \irqnr,
34 clz \irqstat, \irqstat
35 cmp \irqstat,
36 subne \irqnr, \irqnr, \irqstat
37#endif
381002:
39 .endm
40
41
42