• Home
  • Raw
  • Download

Lines Matching refs:scp

3649 static void asc_scsi_done(struct scsi_cmnd *scp)  in asc_scsi_done()  argument
3651 scsi_dma_unmap(scp); in asc_scsi_done()
3652 ASC_STATS(scp->device->host, done); in asc_scsi_done()
3653 scp->scsi_done(scp); in asc_scsi_done()
5950 struct scsi_cmnd *scp; in adv_isr_callback() local
5963 scp = scsi_host_find_tag(boardp->shost, scsiqp->srb_tag); in adv_isr_callback()
5965 ASC_DBG(1, "scp 0x%p\n", scp); in adv_isr_callback()
5966 if (scp == NULL) { in adv_isr_callback()
5971 ASC_DBG_PRT_CDB(2, scp->cmnd, scp->cmd_len); in adv_isr_callback()
5973 reqp = (adv_req_t *)scp->host_scribble; in adv_isr_callback()
5983 scp->host_scribble = NULL; in adv_isr_callback()
5999 scp->result = 0; in adv_isr_callback()
6008 if (scsi_bufflen(scp) != 0 && resid_cnt != 0 && in adv_isr_callback()
6009 resid_cnt <= scsi_bufflen(scp)) { in adv_isr_callback()
6012 scsi_set_resid(scp, resid_cnt); in adv_isr_callback()
6022 ASC_DBG_PRT_SENSE(2, scp->sense_buffer, in adv_isr_callback()
6036 scp->result = DRIVER_BYTE(DRIVER_SENSE) | in adv_isr_callback()
6039 scp->result = STATUS_BYTE(scsiqp->scsi_status); in adv_isr_callback()
6046 scp->result = HOST_BYTE(DID_BAD_TARGET); in adv_isr_callback()
6053 scp->result = in adv_isr_callback()
6059 scp->result = in adv_isr_callback()
6069 if ((boardp->init_tidmask & ADV_TID_TO_TIDMASK(scp->device->id)) == 0 && in adv_isr_callback()
6072 boardp->init_tidmask |= ADV_TID_TO_TIDMASK(scp->device->id); in adv_isr_callback()
6075 asc_scsi_done(scp); in adv_isr_callback()
6743 struct scsi_cmnd *scp; in asc_isr_callback() local
6752 scp = scsi_host_find_tag(boardp->shost, srb_tag); in asc_isr_callback()
6753 if (!scp) in asc_isr_callback()
6756 ASC_DBG_PRT_CDB(2, scp->cmnd, scp->cmd_len); in asc_isr_callback()
6760 dma_unmap_single(boardp->dev, scp->SCp.dma_handle, in asc_isr_callback()
6768 scp->result = 0; in asc_isr_callback()
6776 if (scsi_bufflen(scp) != 0 && qdonep->remain_bytes != 0 && in asc_isr_callback()
6777 qdonep->remain_bytes <= scsi_bufflen(scp)) { in asc_isr_callback()
6780 scsi_set_resid(scp, qdonep->remain_bytes); in asc_isr_callback()
6790 ASC_DBG_PRT_SENSE(2, scp->sense_buffer, in asc_isr_callback()
6804 scp->result = DRIVER_BYTE(DRIVER_SENSE) | in asc_isr_callback()
6807 scp->result = STATUS_BYTE(qdonep->d3.scsi_stat); in asc_isr_callback()
6814 scp->result = HOST_BYTE(DID_BAD_TARGET); in asc_isr_callback()
6821 scp->result = in asc_isr_callback()
6829 scp->result = in asc_isr_callback()
6841 if ((boardp->init_tidmask & ADV_TID_TO_TIDMASK(scp->device->id)) == 0 && in asc_isr_callback()
6844 boardp->init_tidmask |= ADV_TID_TO_TIDMASK(scp->device->id); in asc_isr_callback()
6847 asc_scsi_done(scp); in asc_isr_callback()
7105 static int advansys_reset(struct scsi_cmnd *scp) in advansys_reset() argument
7107 struct Scsi_Host *shost = scp->device->host; in advansys_reset()
7113 ASC_DBG(1, "0x%p\n", scp); in advansys_reset()
7117 scmd_printk(KERN_INFO, scp, "SCSI host reset started...\n"); in advansys_reset()
7128 scmd_printk(KERN_INFO, scp, "SCSI host reset error: " in advansys_reset()
7133 scmd_printk(KERN_INFO, scp, "SCSI host reset warning: " in advansys_reset()
7136 scmd_printk(KERN_INFO, scp, "SCSI host reset " in advansys_reset()
7154 scmd_printk(KERN_INFO, scp, "SCSI host reset " in advansys_reset()
7159 scmd_printk(KERN_INFO, scp, "SCSI host reset error\n"); in advansys_reset()
7494 static __le32 asc_get_sense_buffer_dma(struct scsi_cmnd *scp) in asc_get_sense_buffer_dma() argument
7496 struct asc_board *board = shost_priv(scp->device->host); in asc_get_sense_buffer_dma()
7498 scp->SCp.dma_handle = dma_map_single(board->dev, scp->sense_buffer, in asc_get_sense_buffer_dma()
7501 if (dma_mapping_error(board->dev, scp->SCp.dma_handle)) { in asc_get_sense_buffer_dma()
7505 return cpu_to_le32(scp->SCp.dma_handle); in asc_get_sense_buffer_dma()
7508 static int asc_build_req(struct asc_board *boardp, struct scsi_cmnd *scp, in asc_build_req() argument
7521 srb_tag = scp->request->tag + 1; in asc_build_req()
7527 asc_scsi_q->cdbptr = &scp->cmnd[0]; in asc_build_req()
7528 asc_scsi_q->q2.cdb_len = scp->cmd_len; in asc_build_req()
7529 asc_scsi_q->q1.target_id = ASC_TID_TO_TARGET_ID(scp->device->id); in asc_build_req()
7530 asc_scsi_q->q1.target_lun = scp->device->lun; in asc_build_req()
7532 ASC_TIDLUN_TO_IX(scp->device->id, scp->device->lun); in asc_build_req()
7533 asc_scsi_q->q1.sense_addr = asc_get_sense_buffer_dma(scp); in asc_build_req()
7549 if ((asc_dvc->cur_dvc_qng[scp->device->id] > 0) && in asc_build_req()
7550 (boardp->reqcnt[scp->device->id] % 255) == 0) { in asc_build_req()
7557 use_sg = scsi_dma_map(scp); in asc_build_req()
7566 if (use_sg > scp->device->host->sg_tablesize) { in asc_build_req()
7567 scmd_printk(KERN_ERR, scp, "use_sg %d > " in asc_build_req()
7569 scp->device->host->sg_tablesize); in asc_build_req()
7570 scsi_dma_unmap(scp); in asc_build_req()
7571 scp->result = HOST_BYTE(DID_ERROR); in asc_build_req()
7578 scsi_dma_unmap(scp); in asc_build_req()
7579 scp->result = HOST_BYTE(DID_SOFT_ERROR); in asc_build_req()
7589 ASC_STATS_ADD(scp->device->host, xfer_elem, in asc_build_req()
7595 scsi_for_each_sg(scp, slp, use_sg, sgcnt) { in asc_build_req()
7600 ASC_STATS_ADD(scp->device->host, xfer_sect, in asc_build_req()
7605 ASC_STATS(scp->device->host, xfer_cnt); in asc_build_req()
7608 ASC_DBG_PRT_CDB(1, scp->cmnd, scp->cmd_len); in asc_build_req()
7627 ADV_SCSI_REQ_Q *scsiqp, struct scsi_cmnd *scp, int use_sg) in adv_get_sglist() argument
7636 slp = scsi_sglist(scp); in adv_get_sglist()
7652 ASC_STATS(scp->device->host, adv_build_nosg); in adv_get_sglist()
7702 ASC_STATS_ADD(scp->device->host, xfer_sect, in adv_get_sglist()
7732 adv_build_req(struct asc_board *boardp, struct scsi_cmnd *scp, in adv_build_req() argument
7735 u32 srb_tag = scp->request->tag; in adv_build_req()
7747 if (reqp->cmndp && reqp->cmndp != scp ) { in adv_build_req()
7749 ASC_STATS(scp->device->host, adv_build_noreq); in adv_build_req()
7770 reqp->cmndp = scp; in adv_build_req()
7771 scp->host_scribble = (void *)reqp; in adv_build_req()
7778 scsiqp->cdb_len = scp->cmd_len; in adv_build_req()
7780 memcpy(scsiqp->cdb, scp->cmnd, scp->cmd_len < 12 ? scp->cmd_len : 12); in adv_build_req()
7782 if (scp->cmd_len > 12) { in adv_build_req()
7783 int cdb16_len = scp->cmd_len - 12; in adv_build_req()
7785 memcpy(scsiqp->cdb16, &scp->cmnd[12], cdb16_len); in adv_build_req()
7788 scsiqp->target_id = scp->device->id; in adv_build_req()
7789 scsiqp->target_lun = scp->device->lun; in adv_build_req()
7791 sense_addr = dma_map_single(boardp->dev, scp->sense_buffer, in adv_build_req()
7795 ASC_STATS(scp->device->host, adv_build_noreq); in adv_build_req()
7803 use_sg = scsi_dma_map(scp); in adv_build_req()
7806 ASC_STATS(scp->device->host, adv_build_noreq); in adv_build_req()
7818 scmd_printk(KERN_ERR, scp, "use_sg %d > " in adv_build_req()
7820 scp->device->host->sg_tablesize); in adv_build_req()
7821 scsi_dma_unmap(scp); in adv_build_req()
7822 scp->result = HOST_BYTE(DID_ERROR); in adv_build_req()
7824 scp->host_scribble = NULL; in adv_build_req()
7829 scsiqp->data_cnt = cpu_to_le32(scsi_bufflen(scp)); in adv_build_req()
7831 ret = adv_get_sglist(boardp, reqp, scsiqp, scp, use_sg); in adv_build_req()
7833 scsi_dma_unmap(scp); in adv_build_req()
7834 scp->result = HOST_BYTE(DID_ERROR); in adv_build_req()
7836 scp->host_scribble = NULL; in adv_build_req()
7841 ASC_STATS_ADD(scp->device->host, xfer_elem, use_sg); in adv_build_req()
7844 ASC_STATS(scp->device->host, xfer_cnt); in adv_build_req()
7847 ASC_DBG_PRT_CDB(1, scp->cmnd, scp->cmd_len); in adv_build_req()
8465 static int asc_execute_scsi_cmnd(struct scsi_cmnd *scp) in asc_execute_scsi_cmnd() argument
8468 struct asc_board *boardp = shost_priv(scp->device->host); in asc_execute_scsi_cmnd()
8470 ASC_DBG(1, "scp 0x%p\n", scp); in asc_execute_scsi_cmnd()
8476 ret = asc_build_req(boardp, scp, &asc_scsi_q); in asc_execute_scsi_cmnd()
8478 ASC_STATS(scp->device->host, build_error); in asc_execute_scsi_cmnd()
8489 switch (adv_build_req(boardp, scp, &adv_reqp)) { in asc_execute_scsi_cmnd()
8505 ASC_STATS(scp->device->host, build_error); in asc_execute_scsi_cmnd()
8515 ASC_STATS(scp->device->host, exe_noerror); in asc_execute_scsi_cmnd()
8520 boardp->reqcnt[scp->device->id]++; in asc_execute_scsi_cmnd()
8525 ASC_STATS(scp->device->host, exe_busy); in asc_execute_scsi_cmnd()
8528 scmd_printk(KERN_ERR, scp, "ExeScsiQueue() ASC_ERROR, " in asc_execute_scsi_cmnd()
8530 ASC_STATS(scp->device->host, exe_error); in asc_execute_scsi_cmnd()
8531 scp->result = HOST_BYTE(DID_ERROR); in asc_execute_scsi_cmnd()
8534 scmd_printk(KERN_ERR, scp, "ExeScsiQueue() unknown, " in asc_execute_scsi_cmnd()
8536 ASC_STATS(scp->device->host, exe_unknown); in asc_execute_scsi_cmnd()
8537 scp->result = HOST_BYTE(DID_ERROR); in asc_execute_scsi_cmnd()
8552 advansys_queuecommand_lck(struct scsi_cmnd *scp, void (*done)(struct scsi_cmnd *)) in advansys_queuecommand_lck() argument
8554 struct Scsi_Host *shost = scp->device->host; in advansys_queuecommand_lck()
8558 scp->scsi_done = done; in advansys_queuecommand_lck()
8560 asc_res = asc_execute_scsi_cmnd(scp); in advansys_queuecommand_lck()
8570 asc_scsi_done(scp); in advansys_queuecommand_lck()