void __init rm7k_cpu_irq_init(void) { int base = RM7K_CPU_IRQ_BASE; int i; clear_c0_intcontrol(0x00000f00); for (i = base; i < base + 4; i++) irq_set_chip_and_handler(i, &rm7k_irq_controller, handle_percpu_irq); }
void __init rm9k_cpu_irq_init(void) { int base = RM9K_CPU_IRQ_BASE; int i; clear_c0_intcontrol(0x0000f000); /* Mask all */ for (i = base; i < base + 4; i++) set_irq_chip_and_handler(i, &rm9k_irq_controller, handle_level_irq); rm9000_perfcount_irq = base + 1; set_irq_chip_and_handler(rm9000_perfcount_irq, &rm9k_perfcounter_irq, handle_percpu_irq); }
void __init rm9k_cpu_irq_init(int base) { int i; clear_c0_intcontrol(0x0000f000); /* Mask all */ for (i = base; i < base + 4; i++) { irq_desc[i].status = IRQ_DISABLED; irq_desc[i].action = NULL; irq_desc[i].depth = 1; irq_desc[i].handler = &rm9k_irq_controller; } rm9000_perfcount_irq = base + 1; irq_desc[rm9000_perfcount_irq].handler = &rm9k_perfcounter_irq; irq_base = base; }
static inline void mask_rm7k_irq(struct irq_data *d) { clear_c0_intcontrol(0x100 << (d->irq - RM7K_CPU_IRQ_BASE)); }
static inline void mask_rm9k_irq(unsigned int irq) { clear_c0_intcontrol(0x1000 << (irq - irq_base)); }
static inline void mask_rm9k_irq(unsigned int irq) { clear_c0_intcontrol(0x1000 << (irq - RM9K_CPU_IRQ_BASE)); }