12 #include <linux/linkage.h>
26 #define irq_canonicalize(irq) (irq)
29 #ifdef CONFIG_MIPS_MT_SMTC
35 unsigned long hwmask);
37 static inline void smtc_im_ack_irq(
unsigned int irq)
39 if (irq_hwmask[irq] &
ST0_IM)
40 set_c0_status(irq_hwmask[irq] & ST0_IM);
45 static inline void smtc_im_ack_irq(
unsigned int irq)
51 #ifdef CONFIG_MIPS_MT_SMTC_IRQAFF
54 extern int plat_set_irq_affinity(
struct irq_data *
d,
56 extern void smtc_forward_irq(
struct irq_data *
d);
69 static inline int handle_on_other_cpu(
unsigned int irq)
81 static inline int handle_on_other_cpu(
unsigned int irq) {
return 0; }
85 #ifdef CONFIG_MIPS_MT_SMTC_IM_BACKSTOP
87 static inline void smtc_im_backstop(
unsigned int irq)
89 if (irq_hwmask[irq] & 0x0000ff00)
91 ~(irq_hwmask[irq] & 0x0000ff00));
100 static inline int smtc_handle_on_other_cpu(
unsigned int irq)
102 int ret = handle_on_other_cpu(irq);
105 smtc_im_backstop(irq);
111 static inline void smtc_im_backstop(
unsigned int irq) { }
112 static inline int smtc_handle_on_other_cpu(
unsigned int irq)
114 return handle_on_other_cpu(irq);
119 extern void do_IRQ(
unsigned int irq);
121 #ifdef CONFIG_MIPS_MT_SMTC_IRQAFF
123 extern void do_IRQ_no_affinity(
unsigned int irq);
138 #define CP0_LEGACY_COMPARE_IRQ 7
139 #define CP0_LEGACY_PERFCNT_IRQ 7