entry-macro.S 1009 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, #0xfe000000
  12. orr \base, \base, #0x00e00000
  13. .endm
  14. .macro get_irqnr_and_base, irqnr, irqstat, base, tmp
  15. mov \irqstat, #0x0C
  16. strb \irqstat, [\base, #0x20] @outb(0x0C, 0x20) /* Poll command */
  17. ldrb \irqnr, [\base, #0x20] @irq = inb(0x20) & 7
  18. and \irqstat, \irqnr, #0x80
  19. teq \irqstat, #0
  20. beq 43f
  21. and \irqnr, \irqnr, #7
  22. teq \irqnr, #2
  23. bne 44f
  24. 43: mov \irqstat, #0x0C
  25. strb \irqstat, [\base, #0xa0] @outb(0x0C, 0xA0) /* Poll command */
  26. ldrb \irqnr, [\base, #0xa0] @irq = (inb(0xA0) & 7) + 8
  27. and \irqstat, \irqnr, #0x80
  28. teq \irqstat, #0
  29. beq 44f
  30. and \irqnr, \irqnr, #7
  31. add \irqnr, \irqnr, #8
  32. 44: teq \irqstat, #0
  33. .endm