Lines Matching refs:scsiq

6123 	ADV_SCSI_REQ_Q *scsiq;  in AdvISR()  local
6181 scsiq = &reqp->scsi_req_q; in AdvISR()
6189 scsiq->done_status = QD_NO_ERROR; in AdvISR()
6190 scsiq->host_status = scsiq->scsi_status = 0; in AdvISR()
6191 scsiq->data_cnt = 0L; in AdvISR()
6207 target_bit = ADV_TID_TO_TIDMASK(scsiq->target_id); in AdvISR()
6212 scsiq->cntl = 0; in AdvISR()
6218 adv_isr_callback(asc_dvc, scsiq); in AdvISR()
6698 ASC_QDONE_INFO *scsiq, unsigned int max_dma_count) in _AscCopyLramScsiDoneQ() argument
6705 (uchar *)scsiq, in _AscCopyLramScsiDoneQ()
6710 scsiq->q_status = (uchar)_val; in _AscCopyLramScsiDoneQ()
6711 scsiq->q_no = (uchar)(_val >> 8); in _AscCopyLramScsiDoneQ()
6714 scsiq->cntl = (uchar)_val; in _AscCopyLramScsiDoneQ()
6719 scsiq->sense_len = (uchar)_val; in _AscCopyLramScsiDoneQ()
6720 scsiq->extra_bytes = (uchar)(_val >> 8); in _AscCopyLramScsiDoneQ()
6725 scsiq->remain_bytes = (((u32)AscReadLramWord(iop_base, in _AscCopyLramScsiDoneQ()
6733 scsiq->remain_bytes += AscReadLramWord(iop_base, in _AscCopyLramScsiDoneQ()
6737 scsiq->remain_bytes &= max_dma_count; in _AscCopyLramScsiDoneQ()
6873 ASC_QDONE_INFO *scsiq; in AscIsrQDone() local
6878 scsiq = (ASC_QDONE_INFO *)&scsiq_buf; in AscIsrQDone()
6886 sg_queue_cnt = _AscCopyLramScsiDoneQ(iop_base, q_addr, scsiq, in AscIsrQDone()
6891 (uchar)(scsiq-> in AscIsrQDone()
6894 tid_no = ASC_TIX_TO_TID(scsiq->d2.target_ix); in AscIsrQDone()
6895 target_id = ASC_TIX_TO_TARGET_ID(scsiq->d2.target_ix); in AscIsrQDone()
6896 if ((scsiq->cntl & QC_SG_HEAD) != 0) { in AscIsrQDone()
6908 scsiq->d3.done_stat = QD_WITH_ERROR; in AscIsrQDone()
6909 scsiq->d3.host_stat = in AscIsrQDone()
6926 scsiq->d2. in AscIsrQDone()
6945 scsiq->d3.done_stat = QD_WITH_ERROR; in AscIsrQDone()
6948 if ((scsiq->d2.srb_tag == 0UL) || in AscIsrQDone()
6949 ((scsiq->q_status & QS_ABORTED) != 0)) { in AscIsrQDone()
6951 } else if (scsiq->q_status == QS_DONE) { in AscIsrQDone()
6957 if (scsiq->extra_bytes != 0) { in AscIsrQDone()
6958 scsiq->remain_bytes += scsiq->extra_bytes; in AscIsrQDone()
6960 if (scsiq->d3.done_stat == QD_WITH_ERROR) { in AscIsrQDone()
6961 if (scsiq->d3.host_stat == in AscIsrQDone()
6963 if ((scsiq-> in AscIsrQDone()
6966 scsiq->d3.done_stat = in AscIsrQDone()
6968 scsiq->d3.host_stat = in AscIsrQDone()
6971 scsiq->d3.done_stat = in AscIsrQDone()
6973 scsiq->d3.host_stat = in AscIsrQDone()
6976 } else if (scsiq->d3.host_stat == in AscIsrQDone()
6990 if ((scsiq->cntl & QC_NO_CALLBACK) == 0) { in AscIsrQDone()
6991 asc_isr_callback(asc_dvc, scsiq); in AscIsrQDone()
6998 if (scsiq->d3.done_stat != QD_NO_ERROR) { in AscIsrQDone()
7008 if ((scsiq->cntl & QC_NO_CALLBACK) == 0) { in AscIsrQDone()
7009 asc_isr_callback(asc_dvc, scsiq); in AscIsrQDone()
7964 static int AscPutReadyQueue(ASC_DVC_VAR *asc_dvc, ASC_SCSI_Q *scsiq, uchar q_no) in AscPutReadyQueue() argument
7974 if (((asc_dvc->init_sdtr & scsiq->q1.target_id) != 0) && in AscPutReadyQueue()
7975 ((asc_dvc->sdtr_done & scsiq->q1.target_id) == 0)) { in AscPutReadyQueue()
7976 tid_no = ASC_TIX_TO_TID(scsiq->q2.target_ix); in AscPutReadyQueue()
7984 scsiq->q1.cntl |= QC_MSG_OUT; in AscPutReadyQueue()
7987 if ((scsiq->q1.target_id & asc_dvc->use_tagged_qng) == 0) { in AscPutReadyQueue()
7988 scsiq->q2.tag_code &= ~SIMPLE_QUEUE_TAG; in AscPutReadyQueue()
7990 scsiq->q1.status = QS_FREE; in AscPutReadyQueue()
7993 (uchar *)scsiq->cdbptr, scsiq->q2.cdb_len >> 1); in AscPutReadyQueue()
7997 (uchar *)&scsiq->q1.cntl, in AscPutReadyQueue()
8001 (ushort)(((ushort)scsiq->q1. in AscPutReadyQueue()
8007 AscPutReadySgListQueue(ASC_DVC_VAR *asc_dvc, ASC_SCSI_Q *scsiq, uchar q_no) in AscPutReadySgListQueue() argument
8023 sg_head = scsiq->sg_head; in AscPutReadySgListQueue()
8024 saved_data_addr = scsiq->q1.data_addr; in AscPutReadySgListQueue()
8025 saved_data_cnt = scsiq->q1.data_cnt; in AscPutReadySgListQueue()
8026 scsiq->q1.data_addr = cpu_to_le32(sg_head->sg_list[0].addr); in AscPutReadySgListQueue()
8027 scsiq->q1.data_cnt = cpu_to_le32(sg_head->sg_list[0].bytes); in AscPutReadySgListQueue()
8036 scsiq->q1.cntl |= QC_SG_HEAD; in AscPutReadySgListQueue()
8039 scsiq->q1.sg_queue_cnt = sg_head->queue_cnt; in AscPutReadySgListQueue()
8088 scsiq->next_sg_index = sg_index; in AscPutReadySgListQueue()
8091 scsiq->q1.cntl &= ~QC_SG_HEAD; in AscPutReadySgListQueue()
8093 sta = AscPutReadyQueue(asc_dvc, scsiq, q_no); in AscPutReadySgListQueue()
8094 scsiq->q1.data_addr = saved_data_addr; in AscPutReadySgListQueue()
8095 scsiq->q1.data_cnt = saved_data_cnt; in AscPutReadySgListQueue()
8100 AscSendScsiQueue(ASC_DVC_VAR *asc_dvc, ASC_SCSI_Q *scsiq, uchar n_q_required) in AscSendScsiQueue() argument
8110 target_ix = scsiq->q2.target_ix; in AscSendScsiQueue()
8119 scsiq->sg_head->queue_cnt = n_q_required - 1; in AscSendScsiQueue()
8120 scsiq->q1.q_no = free_q_head; in AscSendScsiQueue()
8121 sta = AscPutReadySgListQueue(asc_dvc, scsiq, in AscSendScsiQueue()
8127 scsiq->q1.q_no = free_q_head; in AscSendScsiQueue()
8128 sta = AscPutReadyQueue(asc_dvc, scsiq, free_q_head); in AscSendScsiQueue()
8159 static int AscExeScsiQueue(ASC_DVC_VAR *asc_dvc, ASC_SCSI_Q *scsiq) in AscExeScsiQueue() argument
8179 sg_head = scsiq->sg_head; in AscExeScsiQueue()
8182 scsiq->q1.q_no = 0; in AscExeScsiQueue()
8183 if ((scsiq->q2.tag_code & ASC_TAG_FLAG_EXTRA_BYTES) == 0) { in AscExeScsiQueue()
8184 scsiq->q1.extra_bytes = 0; in AscExeScsiQueue()
8187 target_ix = scsiq->q2.target_ix; in AscExeScsiQueue()
8190 if (scsiq->cdbptr[0] == REQUEST_SENSE) { in AscExeScsiQueue()
8191 if ((asc_dvc->init_sdtr & scsiq->q1.target_id) != 0) { in AscExeScsiQueue()
8192 asc_dvc->sdtr_done &= ~scsiq->q1.target_id; in AscExeScsiQueue()
8202 scsiq->q1.cntl |= (QC_MSG_OUT | QC_URGENT); in AscExeScsiQueue()
8210 if ((scsiq->q1.cntl & QC_SG_HEAD) != 0) { in AscExeScsiQueue()
8220 scsiq->q1.data_addr = cpu_to_le32(sg_head->sg_list[0].addr); in AscExeScsiQueue()
8221 scsiq->q1.data_cnt = cpu_to_le32(sg_head->sg_list[0].bytes); in AscExeScsiQueue()
8222 scsiq->q1.cntl &= ~(QC_SG_HEAD | QC_SG_SWAP_QUEUE); in AscExeScsiQueue()
8226 scsi_cmd = scsiq->cdbptr[0]; in AscExeScsiQueue()
8228 if ((asc_dvc->pci_fix_asyn_xfer & scsiq->q1.target_id) && in AscExeScsiQueue()
8229 !(asc_dvc->pci_fix_asyn_xfer_always & scsiq->q1.target_id)) { in AscExeScsiQueue()
8230 if (scsiq->q1.cntl & QC_SG_HEAD) { in AscExeScsiQueue()
8237 data_cnt = le32_to_cpu(scsiq->q1.data_cnt); in AscExeScsiQueue()
8260 scsiq->q2.tag_code &= ~SIMPLE_QUEUE_TAG; in AscExeScsiQueue()
8261 scsiq->q2.tag_code |= (ASC_TAG_FLAG_DISABLE_ASYN_USE_SYN_FIX | in AscExeScsiQueue()
8264 scsiq->q2.tag_code &= 0x27; in AscExeScsiQueue()
8266 if ((scsiq->q1.cntl & QC_SG_HEAD) != 0) { in AscExeScsiQueue()
8283 ((scsiq->q2. in AscExeScsiQueue()
8287 scsiq->q2.tag_code |= in AscExeScsiQueue()
8289 scsiq->q1.extra_bytes = in AscExeScsiQueue()
8310 || ((scsiq->q1.cntl & QC_URGENT) != 0)) { in AscExeScsiQueue()
8312 AscSendScsiQueue(asc_dvc, scsiq, in AscExeScsiQueue()
8324 le32_to_cpu(scsiq->q1.data_addr) + in AscExeScsiQueue()
8325 le32_to_cpu(scsiq->q1.data_cnt); in AscExeScsiQueue()
8330 ((scsiq->q2. in AscExeScsiQueue()
8335 le32_to_cpu(scsiq->q1. in AscExeScsiQueue()
8339 scsiq->q2.tag_code |= in AscExeScsiQueue()
8342 scsiq->q1.data_cnt = in AscExeScsiQueue()
8345 scsiq->q1.extra_bytes = in AscExeScsiQueue()
8354 ((scsiq->q1.cntl & QC_URGENT) != 0)) { in AscExeScsiQueue()
8355 if ((sta = AscSendScsiQueue(asc_dvc, scsiq, in AscExeScsiQueue()
8391 ADV_SCSI_REQ_Q *scsiq = &reqp->scsi_req_q; in AdvExeScsiQueue() local
8396 if (scsiq->target_id > ADV_MAX_TID) { in AdvExeScsiQueue()
8397 scsiq->host_status = QHSTA_M_INVALID_DEVICE; in AdvExeScsiQueue()
8398 scsiq->done_status = QD_WITH_ERROR; in AdvExeScsiQueue()
8417 scsiq->scsiq_ptr = cpu_to_le32(scsiq->srb_tag); in AdvExeScsiQueue()
8418 scsiq->scsiq_rptr = cpu_to_le32(reqp->req_addr); in AdvExeScsiQueue()
8420 scsiq->carr_va = asc_dvc->icq_sp->carr_va; in AdvExeScsiQueue()
8421 scsiq->carr_pa = asc_dvc->icq_sp->carr_pa; in AdvExeScsiQueue()
8428 asc_dvc->icq_sp->areq_vpa = scsiq->scsiq_rptr; in AdvExeScsiQueue()