home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / src / linux-headers-2.6.28-15 / arch / arm / mach-versatile / include / mach / entry-macro.S < prev    next >
Encoding:
Text File  |  2008-12-24  |  1.0 KB  |  45 lines

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