irq.h 680 B

1234567891011121314151617181920212223242526272829303132
  1. /*
  2. * include/asm-arm/arch-cl7500/irq.h
  3. *
  4. * Copyright (C) 1996 Russell King
  5. * Copyright (C) 1999, 2001 Nexus Electronics Ltd.
  6. *
  7. * Changelog:
  8. * 10-10-1996 RMK Brought up to date with arch-sa110eval
  9. * 22-08-1998 RMK Restructured IRQ routines
  10. * 11-08-1999 PJB Created ARM7500 version, derived from RiscPC code
  11. */
  12. #include <asm/hardware/iomd.h>
  13. #include <asm/io.h>
  14. static inline int fixup_irq(unsigned int irq)
  15. {
  16. if (irq == IRQ_ISA) {
  17. int isabits = *((volatile unsigned int *)0xe002b700);
  18. if (isabits == 0) {
  19. printk("Spurious ISA IRQ!\n");
  20. return irq;
  21. }
  22. irq = IRQ_ISA_BASE;
  23. while (!(isabits & 1)) {
  24. irq++;
  25. isabits >>= 1;
  26. }
  27. }
  28. return irq;
  29. }