root/arch/arm/include/asm/hardware/entry-macro-iomd.S

/* [<][>][^][v][top][bottom][index][help] */
   1 /*
   2  * arch/arm/include/asm/hardware/entry-macro-iomd.S
   3  *
   4  * Low-level IRQ helper macros for IOC/IOMD 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 
  11 /* IOC / IOMD based hardware */
  12 #include <asm/hardware/iomd.h>
  13 
  14                 .macro  get_irqnr_and_base, irqnr, irqstat, base, tmp
  15                 ldrb    \irqstat, [\base, #IOMD_IRQREQB]        @ get high priority first
  16                 ldr     \tmp, =irq_prio_h
  17                 teq     \irqstat, #0
  18 #ifdef IOMD_BASE
  19                 ldrbeq  \irqstat, [\base, #IOMD_DMAREQ] @ get dma
  20                 addeq   \tmp, \tmp, #256                @ irq_prio_h table size
  21                 teqeq   \irqstat, #0
  22                 bne     2406f
  23 #endif
  24                 ldrbeq  \irqstat, [\base, #IOMD_IRQREQA]        @ get low priority
  25                 addeq   \tmp, \tmp, #256                @ irq_prio_d table size
  26                 teqeq   \irqstat, #0
  27 #ifdef IOMD_IRQREQC
  28                 ldrbeq  \irqstat, [\base, #IOMD_IRQREQC]
  29                 addeq   \tmp, \tmp, #256                @ irq_prio_l table size
  30                 teqeq   \irqstat, #0
  31 #endif
  32 #ifdef IOMD_IRQREQD
  33                 ldrbeq  \irqstat, [\base, #IOMD_IRQREQD]
  34                 addeq   \tmp, \tmp, #256                @ irq_prio_lc table size
  35                 teqeq   \irqstat, #0
  36 #endif
  37 2406:           ldrbne  \irqnr, [\tmp, \irqstat]        @ get IRQ number
  38                 .endm
  39 
  40 /*
  41  * Interrupt table (incorporates priority).  Please note that we
  42  * rely on the order of these tables (see above code).
  43  */
  44                 .align  5
  45 irq_prio_h:     .byte    0, 8, 9, 8,10,10,10,10,11,11,11,11,10,10,10,10
  46                 .byte   12, 8, 9, 8,10,10,10,10,11,11,11,11,10,10,10,10
  47                 .byte   13,13,13,13,10,10,10,10,11,11,11,11,10,10,10,10
  48                 .byte   13,13,13,13,10,10,10,10,11,11,11,11,10,10,10,10
  49                 .byte   14,14,14,14,10,10,10,10,11,11,11,11,10,10,10,10
  50                 .byte   14,14,14,14,10,10,10,10,11,11,11,11,10,10,10,10
  51                 .byte   13,13,13,13,10,10,10,10,11,11,11,11,10,10,10,10
  52                 .byte   13,13,13,13,10,10,10,10,11,11,11,11,10,10,10,10
  53                 .byte   15,15,15,15,10,10,10,10,11,11,11,11,10,10,10,10
  54                 .byte   15,15,15,15,10,10,10,10,11,11,11,11,10,10,10,10
  55                 .byte   13,13,13,13,10,10,10,10,11,11,11,11,10,10,10,10
  56                 .byte   13,13,13,13,10,10,10,10,11,11,11,11,10,10,10,10
  57                 .byte   15,15,15,15,10,10,10,10,11,11,11,11,10,10,10,10
  58                 .byte   15,15,15,15,10,10,10,10,11,11,11,11,10,10,10,10
  59                 .byte   13,13,13,13,10,10,10,10,11,11,11,11,10,10,10,10
  60                 .byte   13,13,13,13,10,10,10,10,11,11,11,11,10,10,10,10
  61 #ifdef IOMD_BASE
  62 irq_prio_d:     .byte    0,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16
  63                 .byte   20,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16
  64                 .byte   21,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16
  65                 .byte   21,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16
  66                 .byte   22,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16
  67                 .byte   22,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16
  68                 .byte   21,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16
  69                 .byte   21,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16
  70                 .byte   23,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16
  71                 .byte   23,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16
  72                 .byte   21,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16
  73                 .byte   21,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16
  74                 .byte   22,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16
  75                 .byte   22,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16
  76                 .byte   21,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16
  77                 .byte   21,16,17,16,18,16,17,16,19,16,17,16,18,16,17,16
  78 #endif
  79 irq_prio_l:     .byte    0, 0, 1, 0, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3
  80                 .byte    4, 0, 1, 0, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3
  81                 .byte    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
  82                 .byte    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
  83                 .byte    6, 6, 6, 6, 6, 6, 6, 6, 3, 3, 3, 3, 3, 3, 3, 3
  84                 .byte    6, 6, 6, 6, 6, 6, 6, 6, 3, 3, 3, 3, 3, 3, 3, 3
  85                 .byte    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
  86                 .byte    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5
  87                 .byte    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
  88                 .byte    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
  89                 .byte    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
  90                 .byte    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
  91                 .byte    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
  92                 .byte    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
  93                 .byte    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
  94                 .byte    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
  95 #ifdef IOMD_IRQREQC
  96 irq_prio_lc:    .byte   24,24,25,24,26,26,26,26,27,27,27,27,27,27,27,27
  97                 .byte   28,24,25,24,26,26,26,26,27,27,27,27,27,27,27,27
  98                 .byte   29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29
  99                 .byte   29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29
 100                 .byte   30,30,30,30,30,30,30,30,27,27,27,27,27,27,27,27
 101                 .byte   30,30,30,30,30,30,30,30,27,27,27,27,27,27,27,27
 102                 .byte   29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29
 103                 .byte   29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29
 104                 .byte   31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31
 105                 .byte   31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31
 106                 .byte   31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31
 107                 .byte   31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31
 108                 .byte   31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31
 109                 .byte   31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31
 110                 .byte   31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31
 111                 .byte   31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31
 112 #endif
 113 #ifdef IOMD_IRQREQD
 114 irq_prio_ld:    .byte   40,40,41,40,42,42,42,42,43,43,43,43,43,43,43,43
 115                 .byte   44,40,41,40,42,42,42,42,43,43,43,43,43,43,43,43
 116                 .byte   45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45
 117                 .byte   45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45
 118                 .byte   46,46,46,46,46,46,46,46,43,43,43,43,43,43,43,43
 119                 .byte   46,46,46,46,46,46,46,46,43,43,43,43,43,43,43,43
 120                 .byte   45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45
 121                 .byte   45,45,45,45,45,45,45,45,45,45,45,45,45,45,45,45
 122                 .byte   47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47
 123                 .byte   47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47
 124                 .byte   47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47
 125                 .byte   47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47
 126                 .byte   47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47
 127                 .byte   47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47
 128                 .byte   47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47
 129                 .byte   47,47,47,47,47,47,47,47,47,47,47,47,47,47,47,47
 130 #endif
 131 

/* [<][>][^][v][top][bottom][index][help] */