void mac_enable_irq (unsigned int irq) { int irq_src = IRQ_SRC(irq); switch(irq_src) { case 1: via_irq_enable(irq); break; case 2: case 7: if (oss_present) { oss_irq_enable(irq); } else { via_irq_enable(irq); } break; case 3: case 4: case 5: case 6: if (psc_present) { psc_irq_enable(irq); } else if (oss_present) { oss_irq_enable(irq); } else if (irq_src == 4) { scc_irq_enable(irq); } break; case 8: if (baboon_present) { baboon_irq_enable(irq); } break; } }
void mac_irq_enable(struct irq_data *data) { int irq = data->irq; int irq_src = IRQ_SRC(irq); switch(irq_src) { case 1: via_irq_enable(irq); break; case 2: case 7: if (oss_present) oss_irq_enable(irq); else via_irq_enable(irq); break; case 3: case 5: case 6: if (psc_present) psc_irq_enable(irq); else if (oss_present) oss_irq_enable(irq); break; case 4: if (psc_present) psc_irq_enable(irq); break; case 8: if (baboon_present) baboon_irq_enable(irq); break; } }
void __init iop_register_interrupts(void) { if (iop_ism_present) { if (oss_present) { if (request_irq(OSS_IRQLEV_IOPISM, iop_ism_irq, 0, "ISM IOP", (void *)IOP_NUM_ISM)) pr_err("Couldn't register ISM IOP interrupt\n"); oss_irq_enable(IRQ_MAC_ADB); } else { if (request_irq(IRQ_VIA2_0, iop_ism_irq, 0, "ISM IOP", (void *)IOP_NUM_ISM)) pr_err("Couldn't register ISM IOP interrupt\n"); } if (!iop_alive(iop_base[IOP_NUM_ISM])) { printk("IOP: oh my god, they killed the ISM IOP!\n"); } else { printk("IOP: the ISM IOP seems to be alive.\n"); } } }
void __init iop_register_interrupts(void) { if (iop_ism_present) { if (oss_present) { sys_request_irq(OSS_IRQLEV_IOPISM, iop_ism_irq, IRQ_FLG_LOCK, "ISM IOP", (void *) IOP_NUM_ISM); oss_irq_enable(IRQ_MAC_ADB); } else { request_irq(IRQ_VIA2_0, iop_ism_irq, IRQ_FLG_LOCK|IRQ_FLG_FAST, "ISM IOP", (void *) IOP_NUM_ISM); } if (!iop_alive(iop_base[IOP_NUM_ISM])) { printk("IOP: oh my god, they killed the ISM IOP!\n"); } else { printk("IOP: the ISM IOP seems to be alive.\n"); } } }