irq.h 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #ifndef __ASM_SH_IRQ_H
  3. #define __ASM_SH_IRQ_H
  4. #include <linux/cpumask.h>
  5. #include <asm/machvec.h>
  6. /*
  7. * This is a special IRQ number for indicating that no IRQ has been
  8. * triggered and to simply ignore the IRQ dispatch. This is a special
  9. * case that can happen with IRQ auto-distribution when multiple CPUs
  10. * are woken up and signalled in parallel.
  11. */
  12. #define NO_IRQ_IGNORE ((unsigned int)-1)
  13. /*
  14. * PINT IRQs
  15. */
  16. void make_imask_irq(unsigned int irq);
  17. static inline int generic_irq_demux(int irq)
  18. {
  19. return irq;
  20. }
  21. #define irq_demux(irq) sh_mv.mv_irq_demux(irq)
  22. void init_IRQ(void);
  23. void migrate_irqs(void);
  24. asmlinkage int do_IRQ(unsigned int irq, struct pt_regs *regs);
  25. #ifdef CONFIG_IRQSTACKS
  26. extern void irq_ctx_init(int cpu);
  27. extern void irq_ctx_exit(int cpu);
  28. #else
  29. # define irq_ctx_init(cpu) do { } while (0)
  30. # define irq_ctx_exit(cpu) do { } while (0)
  31. #endif
  32. #ifdef CONFIG_INTC_BALANCING
  33. extern unsigned int irq_lookup(unsigned int irq);
  34. extern void irq_finish(unsigned int irq);
  35. #else
  36. #define irq_lookup(irq) (irq)
  37. #define irq_finish(irq) do { } while (0)
  38. #endif
  39. #include <asm-generic/irq.h>
  40. #endif /* __ASM_SH_IRQ_H */