entry-macro.S 1.0 KB

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