[PATCH] briq_panel: read() and write() get __user pointers, damnit
[linux-2.6/verdex.git] / include / asm-arm / arch-ebsa285 / entry-macro.S
blobcf10ac96fdded85a3a97fd26442c92328942d9b0
1 /*
2  * include/asm-arm/arch-footbridge/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 <asm/hardware.h>
11 #include <asm/arch/irqs.h>
12 #include <asm/hardware/dec21285.h>
14                 .macro  disable_fiq
15                 .endm
17                 .equ    dc21285_high, ARMCSR_BASE & 0xff000000
18                 .equ    dc21285_low, ARMCSR_BASE & 0x00ffffff
20                 .macro  get_irqnr_and_base, irqnr, irqstat, base, tmp
21                 mov     r4, #dc21285_high
22                 .if     dc21285_low
23                 orr     r4, r4, #dc21285_low
24                 .endif
25                 ldr     \irqstat, [r4, #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