entry-macro.S 977 B

123456789101112131415161718192021222324252627282930313233343536
  1. /*
  2. * arch/arm/mach-shark/include/mach/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 get_irqnr_preamble, base, tmp
  11. mov \base, #0xe0000000
  12. .endm
  13. .macro get_irqnr_and_base, irqnr, irqstat, base, tmp
  14. mov \irqstat, #0x0C
  15. strb \irqstat, [\base, #0x20] @outb(0x0C, 0x20) /* Poll command */
  16. ldrb \irqnr, [\base, #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, [\base, #0xa0] @outb(0x0C, 0xA0) /* Poll command */
  25. ldrb \irqnr, [\base, #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