Lines Matching refs:scsiq
6117 ADV_SCSI_REQ_Q *scsiq;
6175 scsiq = &reqp->scsi_req_q;
6183 scsiq->done_status = QD_NO_ERROR;
6184 scsiq->host_status = scsiq->scsi_status = 0;
6185 scsiq->data_cnt = 0L;
6201 target_bit = ADV_TID_TO_TIDMASK(scsiq->target_id);
6206 scsiq->cntl = 0;
6212 adv_isr_callback(asc_dvc, scsiq);
6214 * Note: After the driver callback function is called, 'scsiq'
6691 ASC_QDONE_INFO *scsiq, unsigned int max_dma_count)
6698 (uchar *)scsiq,
6703 scsiq->q_status = (uchar)_val;
6704 scsiq->q_no = (uchar)(_val >> 8);
6707 scsiq->cntl = (uchar)_val;
6712 scsiq->sense_len = (uchar)_val;
6713 scsiq->extra_bytes = (uchar)(_val >> 8);
6718 scsiq->remain_bytes = (((u32)AscReadLramWord(iop_base,
6726 scsiq->remain_bytes += AscReadLramWord(iop_base,
6730 scsiq->remain_bytes &= max_dma_count;
6866 ASC_QDONE_INFO *scsiq;
6871 scsiq = (ASC_QDONE_INFO *)&scsiq_buf;
6879 sg_queue_cnt = _AscCopyLramScsiDoneQ(iop_base, q_addr, scsiq,
6884 (uchar)(scsiq->
6887 tid_no = ASC_TIX_TO_TID(scsiq->d2.target_ix);
6888 target_id = ASC_TIX_TO_TARGET_ID(scsiq->d2.target_ix);
6889 if ((scsiq->cntl & QC_SG_HEAD) != 0) {
6901 scsiq->d3.done_stat = QD_WITH_ERROR;
6902 scsiq->d3.host_stat =
6919 scsiq->d2.
6938 scsiq->d3.done_stat = QD_WITH_ERROR;
6941 if ((scsiq->d2.srb_tag == 0UL) ||
6942 ((scsiq->q_status & QS_ABORTED) != 0)) {
6944 } else if (scsiq->q_status == QS_DONE) {
6950 if (scsiq->extra_bytes != 0) {
6951 scsiq->remain_bytes += scsiq->extra_bytes;
6953 if (scsiq->d3.done_stat == QD_WITH_ERROR) {
6954 if (scsiq->d3.host_stat ==
6956 if ((scsiq->
6959 scsiq->d3.done_stat =
6961 scsiq->d3.host_stat =
6964 scsiq->d3.done_stat =
6966 scsiq->d3.host_stat =
6969 } else if (scsiq->d3.host_stat ==
6983 if ((scsiq->cntl & QC_NO_CALLBACK) == 0) {
6984 asc_isr_callback(asc_dvc, scsiq);
6991 if (scsiq->d3.done_stat != QD_NO_ERROR) {
7001 if ((scsiq->cntl & QC_NO_CALLBACK) == 0) {
7002 asc_isr_callback(asc_dvc, scsiq);
7957 static int AscPutReadyQueue(ASC_DVC_VAR *asc_dvc, ASC_SCSI_Q *scsiq, uchar q_no)
7967 if (((asc_dvc->init_sdtr & scsiq->q1.target_id) != 0) &&
7968 ((asc_dvc->sdtr_done & scsiq->q1.target_id) == 0)) {
7969 tid_no = ASC_TIX_TO_TID(scsiq->q2.target_ix);
7977 scsiq->q1.cntl |= QC_MSG_OUT;
7980 if ((scsiq->q1.target_id & asc_dvc->use_tagged_qng) == 0) {
7981 scsiq->q2.tag_code &= ~SIMPLE_QUEUE_TAG;
7983 scsiq->q1.status = QS_FREE;
7986 (uchar *)scsiq->cdbptr, scsiq->q2.cdb_len >> 1);
7990 (uchar *)&scsiq->q1.cntl,
7994 (ushort)(((ushort)scsiq->q1.
8000 AscPutReadySgListQueue(ASC_DVC_VAR *asc_dvc, ASC_SCSI_Q *scsiq, uchar q_no)
8016 sg_head = scsiq->sg_head;
8017 saved_data_addr = scsiq->q1.data_addr;
8018 saved_data_cnt = scsiq->q1.data_cnt;
8019 scsiq->q1.data_addr = cpu_to_le32(sg_head->sg_list[0].addr);
8020 scsiq->q1.data_cnt = cpu_to_le32(sg_head->sg_list[0].bytes);
8029 scsiq->q1.cntl |= QC_SG_HEAD;
8032 scsiq->q1.sg_queue_cnt = sg_head->queue_cnt;
8081 scsiq->next_sg_index = sg_index;
8084 scsiq->q1.cntl &= ~QC_SG_HEAD;
8086 sta = AscPutReadyQueue(asc_dvc, scsiq, q_no);
8087 scsiq->q1.data_addr = saved_data_addr;
8088 scsiq->q1.data_cnt = saved_data_cnt;
8093 AscSendScsiQueue(ASC_DVC_VAR *asc_dvc, ASC_SCSI_Q *scsiq, uchar n_q_required)
8103 target_ix = scsiq->q2.target_ix;
8112 scsiq->sg_head->queue_cnt = n_q_required - 1;
8113 scsiq->q1.q_no = free_q_head;
8114 sta = AscPutReadySgListQueue(asc_dvc, scsiq,
8120 scsiq->q1.q_no = free_q_head;
8121 sta = AscPutReadyQueue(asc_dvc, scsiq, free_q_head);
8152 static int AscExeScsiQueue(ASC_DVC_VAR *asc_dvc, ASC_SCSI_Q *scsiq)
8172 sg_head = scsiq->sg_head;
8175 scsiq->q1.q_no = 0;
8176 if ((scsiq->q2.tag_code & ASC_TAG_FLAG_EXTRA_BYTES) == 0) {
8177 scsiq->q1.extra_bytes = 0;
8180 target_ix = scsiq->q2.target_ix;
8183 if (scsiq->cdbptr[0] == REQUEST_SENSE) {
8184 if ((asc_dvc->init_sdtr & scsiq->q1.target_id) != 0) {
8185 asc_dvc->sdtr_done &= ~scsiq->q1.target_id;
8195 scsiq->q1.cntl |= (QC_MSG_OUT | QC_URGENT);
8203 if ((scsiq->q1.cntl & QC_SG_HEAD) != 0) {
8213 scsiq->q1.data_addr = cpu_to_le32(sg_head->sg_list[0].addr);
8214 scsiq->q1.data_cnt = cpu_to_le32(sg_head->sg_list[0].bytes);
8215 scsiq->q1.cntl &= ~(QC_SG_HEAD | QC_SG_SWAP_QUEUE);
8219 scsi_cmd = scsiq->cdbptr[0];
8221 if ((asc_dvc->pci_fix_asyn_xfer & scsiq->q1.target_id) &&
8222 !(asc_dvc->pci_fix_asyn_xfer_always & scsiq->q1.target_id)) {
8223 if (scsiq->q1.cntl & QC_SG_HEAD) {
8230 data_cnt = le32_to_cpu(scsiq->q1.data_cnt);
8253 scsiq->q2.tag_code &= ~SIMPLE_QUEUE_TAG;
8254 scsiq->q2.tag_code |= (ASC_TAG_FLAG_DISABLE_ASYN_USE_SYN_FIX |
8257 scsiq->q2.tag_code &= 0x27;
8259 if ((scsiq->q1.cntl & QC_SG_HEAD) != 0) {
8276 ((scsiq->q2.
8280 scsiq->q2.tag_code |=
8282 scsiq->q1.extra_bytes =
8303 || ((scsiq->q1.cntl & QC_URGENT) != 0)) {
8305 AscSendScsiQueue(asc_dvc, scsiq,
8317 le32_to_cpu(scsiq->q1.data_addr) +
8318 le32_to_cpu(scsiq->q1.data_cnt);
8323 ((scsiq->q2.
8328 le32_to_cpu(scsiq->q1.
8332 scsiq->q2.tag_code |=
8335 scsiq->q1.data_cnt =
8338 scsiq->q1.extra_bytes =
8347 ((scsiq->q1.cntl & QC_URGENT) != 0)) {
8348 if ((sta = AscSendScsiQueue(asc_dvc, scsiq,
8384 ADV_SCSI_REQ_Q *scsiq = &reqp->scsi_req_q;
8389 if (scsiq->target_id > ADV_MAX_TID) {
8390 scsiq->host_status = QHSTA_M_INVALID_DEVICE;
8391 scsiq->done_status = QD_WITH_ERROR;
8410 scsiq->scsiq_ptr = cpu_to_le32(scsiq->srb_tag);
8411 scsiq->scsiq_rptr = cpu_to_le32(reqp->req_addr);
8413 scsiq->carr_va = asc_dvc->icq_sp->carr_va;
8414 scsiq->carr_pa = asc_dvc->icq_sp->carr_pa;
8421 asc_dvc->icq_sp->areq_vpa = scsiq->scsiq_rptr;