Add linux-next specific files for 20110831
[linux-2.6/next.git] / arch / arm / mach-shark / include / mach / entry-macro.S
blob0bb6cc626eb71d78b184905020ded7a769e230c3
1 /*
2  * arch/arm/mach-shark/include/mach/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_preamble, base, tmp
14                 mov     \base, #0xe0000000
15                 .endm
17                 .macro  arch_ret_to_user, tmp1, tmp2
18                 .endm
20                 .macro  get_irqnr_and_base, irqnr, irqstat, base, tmp
22                 mov     \irqstat, #0x0C
23                 strb    \irqstat, [\base, #0x20]        @outb(0x0C, 0x20) /* Poll command */
24                 ldrb    \irqnr, [\base, #0x20]          @irq = inb(0x20) & 7
25                 and     \irqstat, \irqnr, #0x80
26                 teq     \irqstat, #0
27                 beq     43f
28                 and     \irqnr, \irqnr, #7
29                 teq     \irqnr, #2
30                 bne     44f
31 43:             mov     \irqstat, #0x0C
32                 strb    \irqstat, [\base, #0xa0]        @outb(0x0C, 0xA0) /* Poll command */
33                 ldrb    \irqnr, [\base, #0xa0]          @irq = (inb(0xA0) & 7) + 8
34                 and     \irqstat, \irqnr, #0x80
35                 teq     \irqstat, #0
36                 beq     44f
37                 and     \irqnr, \irqnr, #7
38                 add     \irqnr, \irqnr, #8
39 44:             teq     \irqstat, #0
40                 .endm