linux/arch/arm/mach-ixp2000/include/mach/entry-macro.S
<<
>>
Prefs
   1/*
   2 * arch/arm/mach-ixp2000/include/mach/entry-macro.S
   3 *
   4 * Low-level IRQ helper macros for IXP2000-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/irqs.h>
  11
  12                .macro  disable_fiq
  13                .endm
  14
  15                .macro  get_irqnr_preamble, base, tmp
  16                .endm
  17
  18                .macro  arch_ret_to_user, tmp1, tmp2
  19                .endm
  20
  21                .macro  get_irqnr_and_base, irqnr, irqstat, base, tmp
  22
  23                mov     \irqnr, #0x0              @clear out irqnr as default
  24                mov     \base, #0xfe000000
  25                orr     \base, \base, #0x00e00000
  26                orr     \base, \base, #0x08
  27                ldr     \irqstat, [\base]         @ get interrupts
  28
  29                cmp     \irqstat, #0
  30                beq     1001f
  31
  32                clz     \irqnr, \irqstat
  33                mov     \base, #31
  34                subs    \irqnr, \base, \irqnr
  35
  36                /*
  37                 * We handle PCIA and PCIB here so we don't have an
  38                 * extra layer of code just to check these two bits.
  39                 */
  40                cmp     \irqnr, #IRQ_IXP2000_PCI
  41                bne     1001f
  42
  43                mov     \base, #0xfe000000
  44                orr     \base, \base, #0x00c00000
  45                orr     \base, \base, #0x00000100
  46                orr     \base, \base, #0x00000058
  47                ldr     \irqstat, [\base]
  48
  49                mov     \tmp, #(1<<26)
  50                tst     \irqstat, \tmp
  51                movne   \irqnr, #IRQ_IXP2000_PCIA
  52                bne     1001f
  53
  54                mov     \tmp, #(1<<27)
  55                tst     \irqstat, \tmp
  56                movne   \irqnr, #IRQ_IXP2000_PCIB
  57
  581001:
  59                .endm
  60
  61