ALSA: usb-audio: Fix an out-of-bound read in create_composite_quirks
[linux/fpc-iii.git] / arch / arm / mach-footbridge / include / mach / entry-macro.S
blobdabbd5c54a788f5529d81b2942a974bc66d86018
1 /*
2  * arch/arm/mach-footbridge/include/mach/entry-macro.S
3  *
4  * Low-level IRQ helper macros for footbridge-based platforms
5  *
6  * This file is licensed under  the terms of the GNU General Public
7  * License version 2. This program is licensed "as is" without any
8  * warranty of any kind, whether express or implied.
9  */
10 #include <mach/hardware.h>
11 #include <mach/irqs.h>
12 #include <asm/hardware/dec21285.h>
14                 .equ    dc21285_high, ARMCSR_BASE & 0xff000000
15                 .equ    dc21285_low, ARMCSR_BASE & 0x00ffffff
17                 .macro  get_irqnr_preamble, base, tmp
18                 mov     \base, #dc21285_high
19                 .if     dc21285_low
20                 orr     \base, \base, #dc21285_low
21                 .endif
22                 .endm
24                 .macro  get_irqnr_and_base, irqnr, irqstat, base, tmp
25                 ldr     \irqstat, [\base, #0x180]       @ get interrupts
27                 mov     \irqnr, #IRQ_SDRAMPARITY
28                 tst     \irqstat, #IRQ_MASK_SDRAMPARITY
29                 bne     1001f
31                 tst     \irqstat, #IRQ_MASK_UART_RX
32                 movne   \irqnr, #IRQ_CONRX
33                 bne     1001f
35                 tst     \irqstat, #IRQ_MASK_DMA1
36                 movne   \irqnr, #IRQ_DMA1
37                 bne     1001f
39                 tst     \irqstat, #IRQ_MASK_DMA2
40                 movne   \irqnr, #IRQ_DMA2
41                 bne     1001f
43                 tst     \irqstat, #IRQ_MASK_IN0
44                 movne   \irqnr, #IRQ_IN0
45                 bne     1001f
47                 tst     \irqstat, #IRQ_MASK_IN1
48                 movne   \irqnr, #IRQ_IN1
49                 bne     1001f
51                 tst     \irqstat, #IRQ_MASK_IN2
52                 movne   \irqnr, #IRQ_IN2
53                 bne     1001f
55                 tst     \irqstat, #IRQ_MASK_IN3
56                 movne   \irqnr, #IRQ_IN3
57                 bne     1001f
59                 tst     \irqstat, #IRQ_MASK_PCI
60                 movne   \irqnr, #IRQ_PCI
61                 bne     1001f
63                 tst     \irqstat, #IRQ_MASK_DOORBELLHOST
64                 movne   \irqnr, #IRQ_DOORBELLHOST
65                 bne     1001f
67                 tst     \irqstat, #IRQ_MASK_I2OINPOST
68                 movne   \irqnr, #IRQ_I2OINPOST
69                 bne     1001f
71                 tst     \irqstat, #IRQ_MASK_TIMER1
72                 movne   \irqnr, #IRQ_TIMER1
73                 bne     1001f
75                 tst     \irqstat, #IRQ_MASK_TIMER2
76                 movne   \irqnr, #IRQ_TIMER2
77                 bne     1001f
79                 tst     \irqstat, #IRQ_MASK_TIMER3
80                 movne   \irqnr, #IRQ_TIMER3
81                 bne     1001f
83                 tst     \irqstat, #IRQ_MASK_UART_TX
84                 movne   \irqnr, #IRQ_CONTX
85                 bne     1001f
87                 tst     \irqstat, #IRQ_MASK_PCI_ABORT
88                 movne   \irqnr, #IRQ_PCI_ABORT
89                 bne     1001f
91                 tst     \irqstat, #IRQ_MASK_PCI_SERR
92                 movne   \irqnr, #IRQ_PCI_SERR
93                 bne     1001f
95                 tst     \irqstat, #IRQ_MASK_DISCARD_TIMER
96                 movne   \irqnr, #IRQ_DISCARD_TIMER
97                 bne     1001f
99                 tst     \irqstat, #IRQ_MASK_PCI_DPERR
100                 movne   \irqnr, #IRQ_PCI_DPERR
101                 bne     1001f
103                 tst     \irqstat, #IRQ_MASK_PCI_PERR
104                 movne   \irqnr, #IRQ_PCI_PERR
105 1001:
106                 .endm