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-ep93xx / entry-macro.S < prev    next >
Encoding:
Text File  |  2006-08-11  |  1.2 KB  |  54 lines

  1. /*
  2.  * linux/include/asm-arm/arch-ep93xx/entry-macro.S
  3.  * IRQ demultiplexing for EP93xx
  4.  *
  5.  * Copyright (C) 2006 Lennert Buytenhek <buytenh@wantstofly.org>
  6.  *
  7.  * This program is free software; you can redistribute it and/or modify
  8.  * it under the terms of the GNU General Public License as published by
  9.  * the Free Software Foundation; either version 2 of the License, or (at
  10.  * your option) any later version.
  11.  */
  12. #include <asm/arch/ep93xx-regs.h>
  13.  
  14.         .macro    disable_fiq
  15.         .endm
  16.  
  17.         .macro    get_irqnr_and_base, irqnr, irqstat, base, tmp
  18.         ldr    \base, =(EP93XX_AHB_VIRT_BASE)
  19.         orr    \base, \base, #0x000b0000
  20.         mov    \irqnr, #0
  21.         ldr    \irqstat, [\base]        @ lower 32 interrupts
  22.         cmp    \irqstat, #0
  23.         bne    1001f
  24.  
  25.         eor    \base, \base, #0x00070000
  26.         ldr    \irqstat, [\base]        @ upper 32 interrupts
  27.         cmp    \irqstat, #0
  28.         beq    1002f
  29.         mov    \irqnr, #0x20
  30.  
  31. 1001:
  32.         movs    \tmp, \irqstat, lsl #16
  33.         movne    \irqstat, \tmp
  34.         addeq    \irqnr, \irqnr, #16
  35.  
  36.         movs    \tmp, \irqstat, lsl #8
  37.         movne    \irqstat, \tmp
  38.         addeq    \irqnr, \irqnr, #8
  39.  
  40.         movs    \tmp, \irqstat, lsl #4
  41.         movne    \irqstat, \tmp
  42.         addeq    \irqnr, \irqnr, #4
  43.  
  44.         movs    \tmp, \irqstat, lsl #2
  45.         movne    \irqstat, \tmp
  46.         addeq    \irqnr, \irqnr, #2
  47.  
  48.         movs    \tmp, \irqstat, lsl #1
  49.         addeq    \irqnr, \irqnr, #1
  50.         orrs    \base, \base, #1
  51.  
  52. 1002:
  53.         .endm
  54.