Linux 2.6.26-rc5
[linux-2.6/openmoko-kernel/knife-kernel.git] / include / asm-arm / arch-ixp23xx / entry-macro.S
blobec9dd6fc2d0f6592d44dcd2f0d96023d2cb7ea2c
1 /*
2  * include/asm-arm/arch-ixp23xx/entry-macro.S
3  */
5                 .macro  disable_fiq
6                 .endm
8                 .macro  get_irqnr_preamble, base, tmp
9                 .endm
11                 .macro  arch_ret_to_user, tmp1, tmp2
12                 .endm
14                 .macro  get_irqnr_and_base, irqnr, irqstat, base, tmp
15                 ldr     \irqnr, =(IXP23XX_INTC_VIRT + IXP23XX_INTR_IRQ_ENC_ST_OFFSET)
16                 ldr     \irqnr, [\irqnr]        @ get interrupt number
17                 cmp     \irqnr, #0x0            @ spurious interrupt ?
18                 movne   \irqnr, \irqnr, lsr #2  @ skip unwanted low order bits
19                 subne   \irqnr, \irqnr, #1      @ convert to 0 based
21 #if 0
22                 cmp     \irqnr, #IRQ_IXP23XX_PCI_INT_RPH
23                 bne     1001f
24                 mov     \irqnr, #IRQ_IXP23XX_INTA
26                 ldr     \irqnr, =0xf5000030
28                 mov     \tmp, #(1<<26)
29                 tst     \irqnr, \tmp
30                 movne   \irqnr, #IRQ_IXP23XX_INTB
32                 mov     \tmp, #(1<<27)
33                 tst     \irqnr, \tmp
34                 movne   \irqnr, #IRQ_IXP23XX_INTA
35 1001:
36 #endif
37                 .endm