void __init iop_init(void) { int i; if (iop_scc_present) { printk("IOP: detected SCC IOP at %p\n", iop_base[IOP_NUM_SCC]); } if (iop_ism_present) { printk("IOP: detected ISM IOP at %p\n", iop_base[IOP_NUM_ISM]); iop_start(iop_base[IOP_NUM_ISM]); iop_alive(iop_base[IOP_NUM_ISM]); /* clears the alive flag */ } /* Make the whole pool available and empty the queues */ for (i = 0 ; i < NUM_IOP_MSGS ; i++) { iop_msg_pool[i].status = IOP_MSGSTATUS_UNUSED; } for (i = 0 ; i < NUM_IOP_CHAN ; i++) { iop_send_queue[IOP_NUM_SCC][i] = NULL; iop_send_queue[IOP_NUM_ISM][i] = NULL; iop_listeners[IOP_NUM_SCC][i].devname = NULL; iop_listeners[IOP_NUM_SCC][i].handler = NULL; iop_listeners[IOP_NUM_ISM][i].devname = NULL; iop_listeners[IOP_NUM_ISM][i].handler = NULL; } }
void __init iop_init(void) { int i; if (iop_scc_present) { printk("IOP: detected SCC IOP at %p\n", iop_base[IOP_NUM_SCC]); } if (iop_ism_present) { printk("IOP: detected ISM IOP at %p\n", iop_base[IOP_NUM_ISM]); iop_start(iop_base[IOP_NUM_ISM]); iop_alive(iop_base[IOP_NUM_ISM]); /* clears the alive flag */ } /* Make the whole pool available and empty the queues */ for (i = 0 ; i < NUM_IOP_MSGS ; i++) { iop_msg_pool[i].status = IOP_MSGSTATUS_UNUSED; } for (i = 0 ; i < NUM_IOP_CHAN ; i++) { iop_send_queue[IOP_NUM_SCC][i] = 0; iop_send_queue[IOP_NUM_ISM][i] = 0; iop_listeners[IOP_NUM_SCC][i].devname = NULL; iop_listeners[IOP_NUM_SCC][i].handler = NULL; iop_listeners[IOP_NUM_ISM][i].devname = NULL; iop_listeners[IOP_NUM_ISM][i].handler = NULL; } #if 0 /* Crashing in 2.4 now, not yet sure why. --jmt */ #ifdef CONFIG_PROC_FS create_proc_info_entry("mac_iop", 0, &proc_root, iop_get_proc_info); #endif #endif }
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"); } } }