Lines Matching refs:mscp
20 * 2. Look at command linking (mscp.command_link and
21 * mscp.command_link_id). (Does not work with many disks,
177 struct mscp {
258 struct mscp mscp[ULTRASTOR_MAX_CMDS];
292 static inline void build_sg_list(struct mscp *, struct scsi_cmnd *SCpnt);
302 panic("No free mscp");
342 fmt[21 + i*2] = '0' + config->mscp[i].target_id;
348 printk(fmt, command, &config->mscp[command], config->mscp_free);
510 if (request_irq(config.interrupt, do_ultrastor_interrupt, 0, "Ultrastor", &config.mscp[0].SCint->device->host)) {
679 static inline void build_sg_list(struct mscp *mscp, struct scsi_cmnd *SCpnt)
687 mscp->sglist[i].address = isa_page_to_bus(sg_page(sg)) + sg->offset;
688 mscp->sglist[i].num_bytes = sg->length;
691 mscp->number_of_sg_list = max;
692 mscp->transfer_data = isa_virt_to_bus(mscp->sglist);
696 mscp->transfer_data_length = transfer_length;
702 struct mscp *my_mscp;
720 my_mscp = &config.mscp[mscp_index];
854 mscp_index = ((struct mscp *)SCpnt->host_scribble) - config.mscp;
912 outl(isa_virt_to_bus(&config.mscp[mscp_index]), config.ogm_address);
935 if (config.mscp[mscp_index].SCint != SCpnt)
937 config.mscp[mscp_index].SCint, SCpnt);
939 if (config.mscp[mscp_index].SCint == NULL)
942 if (config.mscp[mscp_index].SCint != SCpnt) panic("Bad abort");
943 config.mscp[mscp_index].SCint = NULL;
944 done = config.mscp[mscp_index].done;
945 config.mscp[mscp_index].done = NULL;
979 if (config.mscp_busy && config.mscp->done && config.mscp->SCint)
981 config.mscp->SCint->result = DID_RESET << 16;
982 config.mscp->done(config.mscp->SCint);
984 config.mscp->SCint = 0;
989 config.mscp[i].done && config.mscp[i].SCint)
991 config.mscp[i].SCint->result = DID_RESET << 16;
992 config.mscp[i].done(config.mscp[i].SCint);
993 config.mscp[i].done = NULL;
995 config.mscp[i].SCint = NULL;
1030 struct mscp *mscp;
1035 mscp = &config.mscp[0];
1037 mscp = (struct mscp *)isa_bus_to_virt(inl(config.icm_address));
1038 mscp_index = mscp - config.mscp;
1040 printk("Ux4F interrupt: bad MSCP address %x\n", (unsigned int) mscp);
1054 mscp_index, (unsigned int) mscp);
1065 void (*done)(struct scsi_cmnd *) = mscp->done;
1067 mscp->done = NULL;
1068 mscp->SCint->result = DID_ABORT << 16;
1069 done(mscp->SCint);
1077 SCtmp = mscp->SCint;
1078 mscp->SCint = NULL;
1083 printk("MSCP %d (%x): no command\n", mscp_index, (unsigned int) mscp);
1097 done = mscp->done;
1098 mscp->done = NULL;
1101 switch (mscp->adapter_status)
1120 SCtmp->result = status | mscp->target_status;
1124 /* Free up mscp block for next command */
1134 mscp_index, (unsigned int) mscp, config.aborted[mscp_index]);