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