entry-macro.S 945 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. /*
  2. * include/asm-arm/arch-ixp4xx/entry-macro.S
  3. *
  4. * Low-level IRQ helper macros for IXP4xx-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. .macro disable_fiq
  11. .endm
  12. .macro get_irqnr_and_base, irqnr, irqstat, base, tmp
  13. ldr \irqstat, =(IXP4XX_INTC_BASE_VIRT+IXP4XX_ICIP_OFFSET)
  14. ldr \irqstat, [\irqstat] @ get interrupts
  15. cmp \irqstat, #0
  16. beq 1001f
  17. clz \irqnr, \irqstat
  18. mov \base, #31
  19. subs \irqnr, \base, \irqnr
  20. 1001:
  21. /*
  22. * IXP465 has an upper IRQ status register
  23. */
  24. #if defined(CONFIG_CPU_IXP46X)
  25. bne 1002f
  26. ldr \irqstat, =(IXP4XX_INTC_BASE_VIRT+IXP4XX_ICIP2_OFFSET)
  27. ldr \irqstat, [\irqstat] @ get upper interrupts
  28. mov \irqnr, #63
  29. clz \irqstat, \irqstat
  30. cmp \irqstat, #32
  31. subne \irqnr, \irqnr, \irqstat
  32. 1002:
  33. #endif
  34. .endm