entry-macro.S 939 B

1234567891011121314151617181920212223242526272829303132333435
  1. /*
  2. * include/asm-arm/arch-shark/entry-macro.S
  3. *
  4. * Low-level IRQ helper macros for Shark platform
  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. mov r4, #0xe0000000
  14. mov \irqstat, #0x0C
  15. strb \irqstat, [r4, #0x20] @outb(0x0C, 0x20) /* Poll command */
  16. ldrb \irqnr, [r4, #0x20] @irq = inb(0x20) & 7
  17. and \irqstat, \irqnr, #0x80
  18. teq \irqstat, #0
  19. beq 43f
  20. and \irqnr, \irqnr, #7
  21. teq \irqnr, #2
  22. bne 44f
  23. 43: mov \irqstat, #0x0C
  24. strb \irqstat, [r4, #0xa0] @outb(0x0C, 0xA0) /* Poll command */
  25. ldrb \irqnr, [r4, #0xa0] @irq = (inb(0xA0) & 7) + 8
  26. and \irqstat, \irqnr, #0x80
  27. teq \irqstat, #0
  28. beq 44f
  29. and \irqnr, \irqnr, #7
  30. add \irqnr, \irqnr, #8
  31. 44: teq \irqstat, #0
  32. .endm