Lines Matching refs:scsiq

2082 #define AdvAbortQueue(asc_dvc, scsiq) \  argument
2084 (ADV_DCNT) (scsiq))
6316 ADV_SCSI_REQ_Q *scsiq; in AdvISR() local
6369 scsiq = (ADV_SCSI_REQ_Q *) in AdvISR()
6378 scsiq->done_status = QD_NO_ERROR; in AdvISR()
6379 scsiq->host_status = scsiq->scsi_status = 0; in AdvISR()
6380 scsiq->data_cnt = 0L; in AdvISR()
6397 target_bit = ADV_TID_TO_TIDMASK(scsiq->target_id); in AdvISR()
6402 scsiq->cntl = 0; in AdvISR()
6408 scsiq->a_flag |= ADV_SCSIQ_DONE; in AdvISR()
6409 adv_isr_callback(asc_dvc, scsiq); in AdvISR()
6861 ASC_SCSI_Q *scsiq; /* Ptr to driver request. */ in AscIsrChipHalted() local
6882 scsiq = (ASC_SCSI_Q *) in AscIsrChipHalted()
6908 sg_head = scsiq->sg_head; in AscIsrChipHalted()
6919 if (scsiq->remain_sg_entry_cnt > (ASC_MAX_SG_LIST - 1)) { in AscIsrChipHalted()
6926 scsiq->remain_sg_entry_cnt -= (ASC_MAX_SG_LIST - 1); in AscIsrChipHalted()
6928 sg_entry_cnt = scsiq->remain_sg_entry_cnt; in AscIsrChipHalted()
6929 scsiq->remain_sg_entry_cnt = 0; in AscIsrChipHalted()
6963 if (scsiq->remain_sg_entry_cnt != 0) { in AscIsrChipHalted()
6984 sg_list[scsiq->next_sg_index], in AscIsrChipHalted()
6987 scsiq->next_sg_index += ASC_SG_LIST_PER_Q; in AscIsrChipHalted()
7046 ASC_QDONE_INFO *scsiq, ASC_DCNT max_dma_count) in _AscCopyLramScsiDoneQ() argument
7053 (uchar *)scsiq, in _AscCopyLramScsiDoneQ()
7058 scsiq->q_status = (uchar)_val; in _AscCopyLramScsiDoneQ()
7059 scsiq->q_no = (uchar)(_val >> 8); in _AscCopyLramScsiDoneQ()
7062 scsiq->cntl = (uchar)_val; in _AscCopyLramScsiDoneQ()
7067 scsiq->sense_len = (uchar)_val; in _AscCopyLramScsiDoneQ()
7068 scsiq->extra_bytes = (uchar)(_val >> 8); in _AscCopyLramScsiDoneQ()
7073 scsiq->remain_bytes = (((ADV_DCNT)AscReadLramWord(iop_base, in _AscCopyLramScsiDoneQ()
7081 scsiq->remain_bytes += AscReadLramWord(iop_base, in _AscCopyLramScsiDoneQ()
7085 scsiq->remain_bytes &= max_dma_count; in _AscCopyLramScsiDoneQ()
7222 ASC_QDONE_INFO *scsiq; in AscIsrQDone() local
7227 scsiq = (ASC_QDONE_INFO *)&scsiq_buf; in AscIsrQDone()
7235 sg_queue_cnt = _AscCopyLramScsiDoneQ(iop_base, q_addr, scsiq, in AscIsrQDone()
7240 (uchar)(scsiq-> in AscIsrQDone()
7243 tid_no = ASC_TIX_TO_TID(scsiq->d2.target_ix); in AscIsrQDone()
7244 target_id = ASC_TIX_TO_TARGET_ID(scsiq->d2.target_ix); in AscIsrQDone()
7245 if ((scsiq->cntl & QC_SG_HEAD) != 0) { in AscIsrQDone()
7257 scsiq->d3.done_stat = QD_WITH_ERROR; in AscIsrQDone()
7258 scsiq->d3.host_stat = in AscIsrQDone()
7275 scsiq->d2. in AscIsrQDone()
7294 scsiq->d3.done_stat = QD_WITH_ERROR; in AscIsrQDone()
7297 if ((scsiq->d2.srb_ptr == 0UL) || in AscIsrQDone()
7298 ((scsiq->q_status & QS_ABORTED) != 0)) { in AscIsrQDone()
7300 } else if (scsiq->q_status == QS_DONE) { in AscIsrQDone()
7302 if (scsiq->extra_bytes != 0) { in AscIsrQDone()
7303 scsiq->remain_bytes += in AscIsrQDone()
7304 (ADV_DCNT)scsiq->extra_bytes; in AscIsrQDone()
7306 if (scsiq->d3.done_stat == QD_WITH_ERROR) { in AscIsrQDone()
7307 if (scsiq->d3.host_stat == in AscIsrQDone()
7309 if ((scsiq-> in AscIsrQDone()
7312 scsiq->d3.done_stat = in AscIsrQDone()
7314 scsiq->d3.host_stat = in AscIsrQDone()
7317 scsiq->d3.done_stat = in AscIsrQDone()
7319 scsiq->d3.host_stat = in AscIsrQDone()
7322 } else if (scsiq->d3.host_stat == in AscIsrQDone()
7336 if ((scsiq->cntl & QC_NO_CALLBACK) == 0) { in AscIsrQDone()
7337 asc_isr_callback(asc_dvc, scsiq); in AscIsrQDone()
7344 if (scsiq->d3.done_stat != QD_NO_ERROR) { in AscIsrQDone()
7354 if ((scsiq->cntl & QC_NO_CALLBACK) == 0) { in AscIsrQDone()
7355 asc_isr_callback(asc_dvc, scsiq); in AscIsrQDone()
8312 static int AscPutReadyQueue(ASC_DVC_VAR *asc_dvc, ASC_SCSI_Q *scsiq, uchar q_no) in AscPutReadyQueue() argument
8322 if (((asc_dvc->init_sdtr & scsiq->q1.target_id) != 0) && in AscPutReadyQueue()
8323 ((asc_dvc->sdtr_done & scsiq->q1.target_id) == 0)) { in AscPutReadyQueue()
8324 tid_no = ASC_TIX_TO_TID(scsiq->q2.target_ix); in AscPutReadyQueue()
8332 scsiq->q1.cntl |= QC_MSG_OUT; in AscPutReadyQueue()
8335 if ((scsiq->q1.target_id & asc_dvc->use_tagged_qng) == 0) { in AscPutReadyQueue()
8336 scsiq->q2.tag_code &= ~SIMPLE_QUEUE_TAG; in AscPutReadyQueue()
8338 scsiq->q1.status = QS_FREE; in AscPutReadyQueue()
8341 (uchar *)scsiq->cdbptr, scsiq->q2.cdb_len >> 1); in AscPutReadyQueue()
8345 (uchar *)&scsiq->q1.cntl, in AscPutReadyQueue()
8349 (ushort)(((ushort)scsiq->q1. in AscPutReadyQueue()
8355 AscPutReadySgListQueue(ASC_DVC_VAR *asc_dvc, ASC_SCSI_Q *scsiq, uchar q_no) in AscPutReadySgListQueue() argument
8371 sg_head = scsiq->sg_head; in AscPutReadySgListQueue()
8372 saved_data_addr = scsiq->q1.data_addr; in AscPutReadySgListQueue()
8373 saved_data_cnt = scsiq->q1.data_cnt; in AscPutReadySgListQueue()
8374 scsiq->q1.data_addr = (ASC_PADDR) sg_head->sg_list[0].addr; in AscPutReadySgListQueue()
8375 scsiq->q1.data_cnt = (ASC_DCNT) sg_head->sg_list[0].bytes; in AscPutReadySgListQueue()
8397 scsiq->remain_sg_entry_cnt = in AscPutReadySgListQueue()
8411 scsiq->q1.cntl |= QC_SG_HEAD; in AscPutReadySgListQueue()
8414 scsiq->q1.sg_queue_cnt = sg_head->queue_cnt; in AscPutReadySgListQueue()
8477 scsiq->next_sg_index = sg_index; in AscPutReadySgListQueue()
8480 scsiq->q1.cntl &= ~QC_SG_HEAD; in AscPutReadySgListQueue()
8482 sta = AscPutReadyQueue(asc_dvc, scsiq, q_no); in AscPutReadySgListQueue()
8483 scsiq->q1.data_addr = saved_data_addr; in AscPutReadySgListQueue()
8484 scsiq->q1.data_cnt = saved_data_cnt; in AscPutReadySgListQueue()
8489 AscSendScsiQueue(ASC_DVC_VAR *asc_dvc, ASC_SCSI_Q *scsiq, uchar n_q_required) in AscSendScsiQueue() argument
8499 target_ix = scsiq->q2.target_ix; in AscSendScsiQueue()
8508 scsiq->sg_head->queue_cnt = n_q_required - 1; in AscSendScsiQueue()
8509 scsiq->q1.q_no = free_q_head; in AscSendScsiQueue()
8510 sta = AscPutReadySgListQueue(asc_dvc, scsiq, in AscSendScsiQueue()
8516 scsiq->q1.q_no = free_q_head; in AscSendScsiQueue()
8517 sta = AscPutReadyQueue(asc_dvc, scsiq, free_q_head); in AscSendScsiQueue()
8548 static int AscExeScsiQueue(ASC_DVC_VAR *asc_dvc, ASC_SCSI_Q *scsiq) in AscExeScsiQueue() argument
8568 sg_head = scsiq->sg_head; in AscExeScsiQueue()
8571 scsiq->q1.q_no = 0; in AscExeScsiQueue()
8572 if ((scsiq->q2.tag_code & ASC_TAG_FLAG_EXTRA_BYTES) == 0) { in AscExeScsiQueue()
8573 scsiq->q1.extra_bytes = 0; in AscExeScsiQueue()
8576 target_ix = scsiq->q2.target_ix; in AscExeScsiQueue()
8579 if (scsiq->cdbptr[0] == REQUEST_SENSE) { in AscExeScsiQueue()
8580 if ((asc_dvc->init_sdtr & scsiq->q1.target_id) != 0) { in AscExeScsiQueue()
8581 asc_dvc->sdtr_done &= ~scsiq->q1.target_id; in AscExeScsiQueue()
8591 scsiq->q1.cntl |= (QC_MSG_OUT | QC_URGENT); in AscExeScsiQueue()
8599 if ((scsiq->q1.cntl & QC_SG_HEAD) != 0) { in AscExeScsiQueue()
8611 scsiq->q1.data_addr = in AscExeScsiQueue()
8613 scsiq->q1.data_cnt = in AscExeScsiQueue()
8615 scsiq->q1.cntl &= ~(QC_SG_HEAD | QC_SG_SWAP_QUEUE); in AscExeScsiQueue()
8619 scsi_cmd = scsiq->cdbptr[0]; in AscExeScsiQueue()
8621 if ((asc_dvc->pci_fix_asyn_xfer & scsiq->q1.target_id) && in AscExeScsiQueue()
8622 !(asc_dvc->pci_fix_asyn_xfer_always & scsiq->q1.target_id)) { in AscExeScsiQueue()
8623 if (scsiq->q1.cntl & QC_SG_HEAD) { in AscExeScsiQueue()
8631 data_cnt = le32_to_cpu(scsiq->q1.data_cnt); in AscExeScsiQueue()
8654 scsiq->q2.tag_code &= ~SIMPLE_QUEUE_TAG; in AscExeScsiQueue()
8655 scsiq->q2.tag_code |= (ASC_TAG_FLAG_DISABLE_ASYN_USE_SYN_FIX | in AscExeScsiQueue()
8658 scsiq->q2.tag_code &= 0x27; in AscExeScsiQueue()
8660 if ((scsiq->q1.cntl & QC_SG_HEAD) != 0) { in AscExeScsiQueue()
8678 ((scsiq->q2. in AscExeScsiQueue()
8682 scsiq->q2.tag_code |= in AscExeScsiQueue()
8684 scsiq->q1.extra_bytes = in AscExeScsiQueue()
8716 || ((scsiq->q1.cntl & QC_URGENT) != 0)) { in AscExeScsiQueue()
8718 AscSendScsiQueue(asc_dvc, scsiq, in AscExeScsiQueue()
8730 le32_to_cpu(scsiq->q1.data_addr) + in AscExeScsiQueue()
8731 le32_to_cpu(scsiq->q1.data_cnt); in AscExeScsiQueue()
8736 ((scsiq->q2. in AscExeScsiQueue()
8741 le32_to_cpu(scsiq->q1. in AscExeScsiQueue()
8745 scsiq->q2.tag_code |= in AscExeScsiQueue()
8749 scsiq->q1.data_cnt = in AscExeScsiQueue()
8752 scsiq->q1.extra_bytes = in AscExeScsiQueue()
8761 ((scsiq->q1.cntl & QC_URGENT) != 0)) { in AscExeScsiQueue()
8762 if ((sta = AscSendScsiQueue(asc_dvc, scsiq, in AscExeScsiQueue()
8794 static int AdvExeScsiQueue(ADV_DVC_VAR *asc_dvc, ADV_SCSI_REQ_Q *scsiq) in AdvExeScsiQueue() argument
8803 if (scsiq->target_id > ADV_MAX_TID) { in AdvExeScsiQueue()
8804 scsiq->host_status = QHSTA_M_INVALID_DEVICE; in AdvExeScsiQueue()
8805 scsiq->done_status = QD_WITH_ERROR; in AdvExeScsiQueue()
8832 scsiq->a_flag &= ~ADV_SCSIQ_DONE; in AdvExeScsiQueue()
8834 req_paddr = virt_to_bus(scsiq); in AdvExeScsiQueue()
8840 scsiq->scsiq_ptr = cpu_to_le32(ADV_VADDR_TO_U32(scsiq)); in AdvExeScsiQueue()
8841 scsiq->scsiq_rptr = req_paddr; in AdvExeScsiQueue()
8843 scsiq->carr_va = cpu_to_le32(ADV_VADDR_TO_U32(asc_dvc->icq_sp)); in AdvExeScsiQueue()
8848 scsiq->carr_pa = asc_dvc->icq_sp->carr_pa; in AdvExeScsiQueue()