home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-arm / arch-versatile / entry-macro.S < prev    next >
Encoding:
Text File  |  2006-08-11  |  948 b   |  39 lines

  1. /*
  2.  * include/asm-arm/arch-versatile/entry-macro.S
  3.  *
  4.  * Low-level IRQ helper macros for Versatile 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 <asm/hardware.h>
  11. #include <asm/hardware/vic.h>
  12.  
  13.         .macro    disable_fiq
  14.         .endm
  15.  
  16.         .macro    get_irqnr_and_base, irqnr, irqstat, base, tmp
  17.         ldr    \base, =IO_ADDRESS(VERSATILE_VIC_BASE)
  18.         ldr    \irqstat, [\base, #VIC_IRQ_STATUS]    @ get masked status
  19.         mov    \irqnr, #0
  20.         teq    \irqstat, #0
  21.         beq    1003f
  22.  
  23. 1001:        tst    \irqstat, #15
  24.         bne    1002f
  25.         add    \irqnr, \irqnr, #4
  26.         movs    \irqstat, \irqstat, lsr #4
  27.         bne    1001b
  28. 1002:        tst    \irqstat, #1
  29.         bne    1003f
  30.         add    \irqnr, \irqnr, #1
  31.         movs    \irqstat, \irqstat, lsr #1
  32.         bne    1002b
  33. 1003:        /* EQ will be set if no irqs pending */
  34.  
  35. @        clz    \irqnr, \irqstat
  36. @1003:        /* EQ will be set if we reach MAXIRQNUM */
  37.         .endm
  38.  
  39.