Lines Matching refs:iop_num
326 int iop_listen(uint iop_num, uint chan,
330 if ((iop_num >= NUM_IOPS) || !iop_base[iop_num]) return -EINVAL;
332 if (iop_listeners[iop_num][chan].handler && handler) return -EINVAL;
333 iop_listeners[iop_num][chan].devname = devname;
334 iop_listeners[iop_num][chan].handler = handler;
346 int iop_num = msg->iop_num;
350 iop_pr_debug("iop_num %d chan %d reply %*ph\n",
351 msg->iop_num, msg->channel, IOP_MSG_LEN, msg->reply);
356 iop_writeb(iop_base[iop_num], offset, msg->reply[i]);
359 iop_writeb(iop_base[iop_num],
361 iop_interrupt(iop_base[msg->iop_num]);
372 volatile struct mac_iop *iop = iop_base[msg->iop_num];
375 iop_pr_debug("iop_num %d chan %d message %*ph\n",
376 msg->iop_num, msg->channel, IOP_MSG_LEN, msg->message);
394 static void iop_handle_send(uint iop_num, uint chan)
396 volatile struct mac_iop *iop = iop_base[iop_num];
402 if (!(msg = iop_send_queue[iop_num][chan])) return;
409 iop_pr_debug("iop_num %d chan %d reply %*ph\n",
410 iop_num, chan, IOP_MSG_LEN, msg->reply);
415 iop_send_queue[iop_num][chan] = msg;
425 static void iop_handle_recv(uint iop_num, uint chan)
427 volatile struct mac_iop *iop = iop_base[iop_num];
432 msg->iop_num = iop_num;
435 msg->handler = iop_listeners[iop_num][chan].handler;
442 iop_pr_debug("iop_num %d chan %d message %*ph\n",
443 iop_num, chan, IOP_MSG_LEN, msg->message);
466 int iop_send_message(uint iop_num, uint chan, void *privdata,
472 if ((iop_num >= NUM_IOPS) || !iop_base[iop_num]) return -EINVAL;
481 msg->iop_num = iop_num;
487 if (!(q = iop_send_queue[iop_num][chan])) {
488 iop_send_queue[iop_num][chan] = msg;
502 void iop_upload_code(uint iop_num, __u8 *code_start,
505 if ((iop_num >= NUM_IOPS) || !iop_base[iop_num]) return;
507 iop_loadaddr(iop_base[iop_num], shared_ram_start);
510 iop_base[iop_num]->ram_data = *code_start++;
518 void iop_download_code(uint iop_num, __u8 *code_start,
521 if ((iop_num >= NUM_IOPS) || !iop_base[iop_num]) return;
523 iop_loadaddr(iop_base[iop_num], shared_ram_start);
526 *code_start++ = iop_base[iop_num]->ram_data;
536 __u8 *iop_compare_code(uint iop_num, __u8 *code_start,
539 if ((iop_num >= NUM_IOPS) || !iop_base[iop_num]) return code_start;
541 iop_loadaddr(iop_base[iop_num], shared_ram_start);
544 if (*code_start != iop_base[iop_num]->ram_data) {
558 uint iop_num = (uint) dev_id;
559 volatile struct mac_iop *iop = iop_base[iop_num];
564 iop_pr_debug("iop_num %d status %02X\n", iop_num,
573 iop_handle_send(iop_num, i);
586 iop_handle_recv(iop_num, i);
599 void iop_ism_irq_poll(uint iop_num)
604 iop_ism_irq(0, (void *)iop_num);