cblk 2532 drivers/scsi/initio.c static void initio_build_scb(struct initio_host * host, struct scsi_ctrl_blk * cblk, struct scsi_cmnd * cmnd) cblk 2541 drivers/scsi/initio.c cblk->post = i91uSCBPost; /* i91u's callback routine */ cblk 2542 drivers/scsi/initio.c cblk->srb = cmnd; cblk 2543 drivers/scsi/initio.c cblk->opcode = ExecSCSI; cblk 2544 drivers/scsi/initio.c cblk->flags = SCF_POST; /* After SCSI done, call post routine */ cblk 2545 drivers/scsi/initio.c cblk->target = cmnd->device->id; cblk 2546 drivers/scsi/initio.c cblk->lun = cmnd->device->lun; cblk 2547 drivers/scsi/initio.c cblk->ident = cmnd->device->lun | DISC_ALLOW; cblk 2549 drivers/scsi/initio.c cblk->flags |= SCF_SENSE; /* Turn on auto request sense */ cblk 2554 drivers/scsi/initio.c cblk->senseptr = (u32)dma_addr; cblk 2555 drivers/scsi/initio.c cblk->senselen = SENSE_SIZE; cblk 2557 drivers/scsi/initio.c cblk->cdblen = cmnd->cmd_len; cblk 2560 drivers/scsi/initio.c cblk->hastat = 0; cblk 2561 drivers/scsi/initio.c cblk->tastat = 0; cblk 2563 drivers/scsi/initio.c memcpy(cblk->cdb, cmnd->cmnd, cmnd->cmd_len); cblk 2567 drivers/scsi/initio.c cblk->tagmsg = SIMPLE_QUEUE_TAG; /* Do simple tag only */ cblk 2569 drivers/scsi/initio.c cblk->tagmsg = 0; /* No tag support */ cblk 2576 drivers/scsi/initio.c dma_addr = dma_map_single(&host->pci_dev->dev, &cblk->sglist[0], cblk 2579 drivers/scsi/initio.c cblk->bufptr = (u32)dma_addr; cblk 2582 drivers/scsi/initio.c cblk->sglen = nseg; cblk 2584 drivers/scsi/initio.c cblk->flags |= SCF_SG; /* Turn on SG list flag */ cblk 2586 drivers/scsi/initio.c sg = &cblk->sglist[0]; cblk 2587 drivers/scsi/initio.c scsi_for_each_sg(cmnd, sglist, cblk->sglen, i) { cblk 2594 drivers/scsi/initio.c cblk->buflen = (scsi_bufflen(cmnd) > total_len) ? cblk 2597 drivers/scsi/initio.c cblk->buflen = 0; cblk 2598 drivers/scsi/initio.c cblk->sglen = 0; cblk 2742 drivers/scsi/initio.c struct scsi_ctrl_blk *cblk; cblk 2745 drivers/scsi/initio.c cblk = (struct scsi_ctrl_blk *) cblk_mem; cblk 2746 drivers/scsi/initio.c if ((cmnd = cblk->srb) == NULL) { cblk 2749 drivers/scsi/initio.c initio_release_scb(host, cblk); /* Release SCB for current channel */ cblk 2756 drivers/scsi/initio.c switch (cblk->hastat) { cblk 2760 drivers/scsi/initio.c cblk->hastat = 0; cblk 2765 drivers/scsi/initio.c cblk->hastat = DID_TIME_OUT; cblk 2772 drivers/scsi/initio.c cblk->hastat = DID_RESET; cblk 2776 drivers/scsi/initio.c cblk->hastat = DID_ABORT; cblk 2786 drivers/scsi/initio.c printk("ini9100u: %x %x\n", cblk->hastat, cblk->tastat); cblk 2787 drivers/scsi/initio.c cblk->hastat = DID_ERROR; /* Couldn't find any better */ cblk 2791 drivers/scsi/initio.c cmnd->result = cblk->tastat | (cblk->hastat << 16); cblk 2794 drivers/scsi/initio.c initio_release_scb(host, cblk); /* Release SCB for current channel */