Lines Matching refs:iop_num

308 int iop_listen(uint iop_num, uint chan,
312 if ((iop_num >= NUM_IOPS) || !iop_base[iop_num]) return -EINVAL;
314 if (iop_listeners[iop_num][chan].handler && handler) return -EINVAL;
315 iop_listeners[iop_num][chan].devname = devname;
316 iop_listeners[iop_num][chan].handler = handler;
328 int iop_num = msg->iop_num;
332 iop_pr_debug("iop_num %d chan %d reply %*ph\n",
333 msg->iop_num, msg->channel, IOP_MSG_LEN, msg->reply);
338 iop_writeb(iop_base[iop_num], offset, msg->reply[i]);
341 iop_writeb(iop_base[iop_num],
343 iop_interrupt(iop_base[msg->iop_num]);
354 volatile struct mac_iop *iop = iop_base[msg->iop_num];
357 iop_pr_debug("iop_num %d chan %d message %*ph\n",
358 msg->iop_num, msg->channel, IOP_MSG_LEN, msg->message);
376 static void iop_handle_send(uint iop_num, uint chan)
378 volatile struct mac_iop *iop = iop_base[iop_num];
384 if (!(msg = iop_send_queue[iop_num][chan])) return;
391 iop_pr_debug("iop_num %d chan %d reply %*ph\n",
392 iop_num, chan, IOP_MSG_LEN, msg->reply);
397 iop_send_queue[iop_num][chan] = msg;
407 static void iop_handle_recv(uint iop_num, uint chan)
409 volatile struct mac_iop *iop = iop_base[iop_num];
414 msg->iop_num = iop_num;
417 msg->handler = iop_listeners[iop_num][chan].handler;
424 iop_pr_debug("iop_num %d chan %d message %*ph\n",
425 iop_num, chan, IOP_MSG_LEN, msg->message);
448 int iop_send_message(uint iop_num, uint chan, void *privdata,
454 if ((iop_num >= NUM_IOPS) || !iop_base[iop_num]) return -EINVAL;
463 msg->iop_num = iop_num;
469 if (!(q = iop_send_queue[iop_num][chan])) {
470 iop_send_queue[iop_num][chan] = msg;
484 void iop_upload_code(uint iop_num, __u8 *code_start,
487 if ((iop_num >= NUM_IOPS) || !iop_base[iop_num]) return;
489 iop_loadaddr(iop_base[iop_num], shared_ram_start);
492 iop_base[iop_num]->ram_data = *code_start++;
500 void iop_download_code(uint iop_num, __u8 *code_start,
503 if ((iop_num >= NUM_IOPS) || !iop_base[iop_num]) return;
505 iop_loadaddr(iop_base[iop_num], shared_ram_start);
508 *code_start++ = iop_base[iop_num]->ram_data;
518 __u8 *iop_compare_code(uint iop_num, __u8 *code_start,
521 if ((iop_num >= NUM_IOPS) || !iop_base[iop_num]) return code_start;
523 iop_loadaddr(iop_base[iop_num], shared_ram_start);
526 if (*code_start != iop_base[iop_num]->ram_data) {
540 uint iop_num = (uint) dev_id;
541 volatile struct mac_iop *iop = iop_base[iop_num];
546 iop_pr_debug("iop_num %d status %02X\n", iop_num,
555 iop_handle_send(iop_num, i);
568 iop_handle_recv(iop_num, i);
581 void iop_ism_irq_poll(uint iop_num)
586 iop_ism_irq(0, (void *)iop_num);