Linux v2.6.15-rc6
[pohmelfs.git] / include / asm-arm / arch-shark / entry-macro.S
bloba924f27fb8d98c7161a26f90aae9f4dc0808c4b2
1 /*
2  * include/asm-arm/arch-shark/entry-macro.S
3  *
4  * Low-level IRQ helper macros for Shark platform
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                 .macro  disable_fiq
11                 .endm
13                 .macro  get_irqnr_and_base, irqnr, irqstat, base, tmp
14                 mov     r4, #0xe0000000
16                 mov     \irqstat, #0x0C
17                 strb    \irqstat, [r4, #0x20]           @outb(0x0C, 0x20) /* Poll command */
18                 ldrb    \irqnr, [r4, #0x20]             @irq = inb(0x20) & 7
19                 and     \irqstat, \irqnr, #0x80
20                 teq     \irqstat, #0
21                 beq     43f
22                 and     \irqnr, \irqnr, #7
23                 teq     \irqnr, #2
24                 bne     44f
25 43:             mov     \irqstat, #0x0C
26                 strb    \irqstat, [r4, #0xa0]           @outb(0x0C, 0xA0) /* Poll command */
27                 ldrb    \irqnr, [r4, #0xa0]             @irq = (inb(0xA0) & 7) + 8
28                 and     \irqstat, \irqnr, #0x80
29                 teq     \irqstat, #0
30                 beq     44f
31                 and     \irqnr, \irqnr, #7
32                 add     \irqnr, \irqnr, #8
33 44:             teq     \irqstat, #0
34                 .endm