Lines Matching refs:ha

82 	ql_adapter_state_t	*ha = vha->pha;  in ql_start_iocb()  local
84 QL_PRINT_3(ha, "started\n"); in ql_start_iocb()
87 REQUEST_RING_LOCK(ha); in ql_start_iocb()
94 if ((link = ha->pending_cmds.first) != NULL) { in ql_start_iocb()
95 ql_add_link_b(&ha->pending_cmds, &sp->cmd); in ql_start_iocb()
98 ql_remove_link(&ha->pending_cmds, &sp->cmd); in ql_start_iocb()
102 if ((link = ha->pending_cmds.first) == NULL) { in ql_start_iocb()
104 REQUEST_RING_UNLOCK(ha); in ql_start_iocb()
105 QL_PRINT_3(ha, "empty done\n"); in ql_start_iocb()
110 ql_remove_link(&ha->pending_cmds, &sp->cmd); in ql_start_iocb()
115 if (ha->req_q[1] != NULL && sp->rsp_q_number != 0) { in ql_start_iocb()
116 req_q = ha->req_q[1]; in ql_start_iocb()
118 req_q = ha->req_q[0]; in ql_start_iocb()
123 if (ha->flags & QUEUE_SHADOW_PTRS) { in ql_start_iocb()
129 } else if (ha->flags & MULTI_QUEUE) { in ql_start_iocb()
130 cnt = RD16_MBAR_REG(ha, req_q->mbar_req_out); in ql_start_iocb()
132 cnt = RD16_IO_REG(ha, req_out); in ql_start_iocb()
151 QL_PRINT_8(ha, "request ring full," in ql_start_iocb()
154 ql_add_link_t(&ha->pending_cmds, &sp->cmd); in ql_start_iocb()
160 for (cnt = 1; cnt < ha->osc_max_cnt; cnt++) { in ql_start_iocb()
161 ha->osc_index++; in ql_start_iocb()
162 if (ha->osc_index == ha->osc_max_cnt) { in ql_start_iocb()
163 ha->osc_index = 1; in ql_start_iocb()
165 if (ha->outstanding_cmds[ha->osc_index] == NULL) { in ql_start_iocb()
173 if (cnt == ha->osc_max_cnt) { in ql_start_iocb()
174 QL_PRINT_8(ha, "no room in outstanding array\n"); in ql_start_iocb()
175 ql_add_link_t(&ha->pending_cmds, &sp->cmd); in ql_start_iocb()
180 ha->outstanding_cmds[ha->osc_index] = sp; in ql_start_iocb()
182 sp->handle = ha->adapter_stats->ncmds << OSC_INDEX_SHIFT | in ql_start_iocb()
183 ha->osc_index; in ql_start_iocb()
201 if (ha->req_q[1] != NULL && sp->rsp_q_number != 0) { in ql_start_iocb()
215 QL_PRINT_5(ha, "req packet, sp=%p\n", (void *)sp); in ql_start_iocb()
241 if (ha->flags & MULTI_QUEUE) { in ql_start_iocb()
242 WR16_MBAR_REG(ha, req_q->mbar_req_in, in ql_start_iocb()
244 } else if (CFG_IST(ha, CFG_CTRL_82XX)) { in ql_start_iocb()
245 ql_8021_wr_req_in(ha, req_q->req_ring_index); in ql_start_iocb()
247 WRT16_IO_REG(ha, req_in, req_q->req_ring_index); in ql_start_iocb()
251 ha->adapter_stats->ncmds++; in ql_start_iocb()
254 if ((link = ha->pending_cmds.first) == NULL) { in ql_start_iocb()
260 ql_remove_link(&ha->pending_cmds, &sp->cmd); in ql_start_iocb()
263 if (qlc_fm_check_acc_handle(ha, ha->dev_handle) in ql_start_iocb()
265 qlc_fm_report_err_impact(ha, in ql_start_iocb()
270 REQUEST_RING_UNLOCK(ha); in ql_start_iocb()
272 QL_PRINT_3(ha, "done\n"); in ql_start_iocb()
298 ql_adapter_state_t *ha = vha->pha; in ql_req_pkt() local
300 QL_PRINT_3(ha, "started\n"); in ql_req_pkt()
305 REQUEST_RING_LOCK(ha); in ql_req_pkt()
309 if (ha->flags & QUEUE_SHADOW_PTRS) { in ql_req_pkt()
315 } else if (ha->flags & MULTI_QUEUE) { in ql_req_pkt()
316 cnt = RD16_MBAR_REG(ha, req_q->mbar_req_out); in ql_req_pkt()
318 cnt = RD16_IO_REG(ha, req_out); in ql_req_pkt()
359 REQUEST_RING_UNLOCK(ha); in ql_req_pkt()
370 INTERRUPT_PENDING(ha)) { in ql_req_pkt()
371 (void) ql_isr((caddr_t)ha); in ql_req_pkt()
372 INTR_LOCK(ha); in ql_req_pkt()
373 ha->intr_claimed = TRUE; in ql_req_pkt()
374 INTR_UNLOCK(ha); in ql_req_pkt()
379 ql_awaken_task_daemon(ha, NULL, ISP_ABORT_NEEDED, 0); in ql_req_pkt()
380 EL(ha, "failed, rval = %xh, isp_abort_needed\n", rval); in ql_req_pkt()
383 QL_PRINT_3(ha, "done\n"); in ql_req_pkt()
406 ql_adapter_state_t *ha = vha->pha; in ql_isp_cmd() local
408 QL_PRINT_3(ha, "started\n"); in ql_isp_cmd()
410 QL_PRINT_5(ha, "req packet:\n"); in ql_isp_cmd()
428 if (ha->flags & MULTI_QUEUE) { in ql_isp_cmd()
429 WR16_MBAR_REG(ha, req_q->mbar_req_in, in ql_isp_cmd()
431 } else if (CFG_IST(ha, CFG_CTRL_82XX)) { in ql_isp_cmd()
432 ql_8021_wr_req_in(ha, req_q->req_ring_index); in ql_isp_cmd()
434 WRT16_IO_REG(ha, req_in, req_q->req_ring_index); in ql_isp_cmd()
438 REQUEST_RING_UNLOCK(ha); in ql_isp_cmd()
440 QL_PRINT_3(ha, "done\n"); in ql_isp_cmd()
457 ql_command_iocb(ql_adapter_state_t *ha, ql_request_q_t *req_q, ql_srb_t *sp, in ql_command_iocb() argument
468 QL_PRINT_3(ha, "started\n"); in ql_command_iocb()
475 if (CFG_IST(ha, CFG_EXT_FW_INTERFACE)) { in ql_command_iocb()
503 QL_PRINT_3(ha, "done\n"); in ql_command_iocb()
505 ha->xioctl->IOControlRequests++; in ql_command_iocb()
515 ha->xioctl->IOOutputRequests++; in ql_command_iocb()
516 ha->xioctl->IOOutputByteCnt += fcp->fcp_data_len; in ql_command_iocb()
520 ha->xioctl->IOInputRequests++; in ql_command_iocb()
521 ha->xioctl->IOInputByteCnt += fcp->fcp_data_len; in ql_command_iocb()
535 if (CFG_IST(ha, CFG_ENABLE_64BIT_ADDRESSING)) { in ql_command_iocb()
571 ql_continuation_iocb(ha, req_q, cp, seg_cnt, in ql_command_iocb()
572 (boolean_t)(CFG_IST(ha, CFG_ENABLE_64BIT_ADDRESSING))); in ql_command_iocb()
575 QL_PRINT_3(ha, "done\n"); in ql_command_iocb()
594 ql_continuation_iocb(ql_adapter_state_t *ha, ql_request_q_t *req_q, in ql_continuation_iocb() argument
602 QL_PRINT_3(ha, "started\n"); in ql_continuation_iocb()
666 QL_PRINT_5(ha, "packet:\n"); in ql_continuation_iocb()
670 QL_PRINT_3(ha, "done\n"); in ql_continuation_iocb()
687 ql_command_24xx_iocb(ql_adapter_state_t *ha, ql_request_q_t *req_q, in ql_command_24xx_iocb() argument
696 ql_adapter_state_t *pha = ha->pha; in ql_command_24xx_iocb()
699 QL_PRINT_3(ha, "started\n"); in ql_command_24xx_iocb()
703 ql_cmd_24xx_type_6_iocb(ha, req_q, sp, arg); in ql_command_24xx_iocb()
704 QL_PRINT_3(ha, "cmd6 exit\n"); in ql_command_24xx_iocb()
729 pkt->vp_index = ha->vp_index; in ql_command_24xx_iocb()
771 QL_PRINT_3(ha, "done\n"); in ql_command_24xx_iocb()
811 QL_PRINT_3(ha, "done\n"); in ql_command_24xx_iocb()
828 ql_cmd_24xx_type_6_iocb(ql_adapter_state_t *ha, ql_request_q_t *req_q, in ql_cmd_24xx_type_6_iocb() argument
838 ql_adapter_state_t *pha = ha->pha; in ql_cmd_24xx_type_6_iocb()
843 QL_PRINT_3(ha, "started\n"); in ql_cmd_24xx_type_6_iocb()
876 pkt->vp_index = ha->vp_index; in ql_cmd_24xx_type_6_iocb()
970 QL_PRINT_3(ha, "done\n"); in ql_cmd_24xx_type_6_iocb()
990 ql_marker(ql_adapter_state_t *ha, uint16_t loop_id, ql_lun_t *lq, in ql_marker() argument
995 ql_request_q_t *req_q = ha->req_q[0]; in ql_marker()
998 QL_PRINT_3(ha, "started\n"); in ql_marker()
1000 rval = ql_req_pkt(ha, req_q, (request_t **)&pkt); in ql_marker()
1004 if (CFG_IST(ha, CFG_ISP_FW_TYPE_2)) { in ql_marker()
1031 pkt24->vp_index = ha->vp_index; in ql_marker()
1045 if (CFG_IST(ha, CFG_EXT_FW_INTERFACE)) { in ql_marker()
1054 ql_isp_cmd(ha, req_q); in ql_marker()
1058 EL(ha, "failed, rval = %xh\n", rval); in ql_marker()
1061 QL_PRINT_3(ha, "done\n"); in ql_marker()
1080 ql_ms_iocb(ql_adapter_state_t *ha, ql_request_q_t *req_q, ql_srb_t *sp, in ql_ms_iocb() argument
1089 QL_PRINT_3(ha, "started\n"); in ql_ms_iocb()
1097 if (CFG_IST(ha, CFG_EXT_FW_INTERFACE)) { in ql_ms_iocb()
1142 ql_continuation_iocb(ha, req_q, cp, seg_cnt, B_TRUE); in ql_ms_iocb()
1145 QL_PRINT_3(ha, "done\n"); in ql_ms_iocb()
1162 ql_ms_24xx_iocb(ql_adapter_state_t *ha, ql_request_q_t *req_q, ql_srb_t *sp, in ql_ms_24xx_iocb() argument
1170 ql_adapter_state_t *pha = ha->pha; in ql_ms_24xx_iocb()
1172 QL_PRINT_3(ha, "started\n"); in ql_ms_24xx_iocb()
1182 pkt->vp_index = ha->vp_index; in ql_ms_24xx_iocb()
1225 QL_PRINT_3(ha, "done\n"); in ql_ms_24xx_iocb()
1242 ql_ip_iocb(ql_adapter_state_t *ha, ql_request_q_t *req_q, ql_srb_t *sp, in ql_ip_iocb() argument
1252 QL_PRINT_3(ha, "started\n"); in ql_ip_iocb()
1255 if (CFG_IST(ha, CFG_EXT_FW_INTERFACE)) { in ql_ip_iocb()
1285 if (CFG_IST(ha, CFG_ENABLE_64BIT_ADDRESSING)) { in ql_ip_iocb()
1319 ql_continuation_iocb(ha, req_q, cp, seg_cnt, in ql_ip_iocb()
1320 (boolean_t)(CFG_IST(ha, CFG_ENABLE_64BIT_ADDRESSING))); in ql_ip_iocb()
1323 QL_PRINT_3(ha, "done\n"); in ql_ip_iocb()
1340 ql_ip_24xx_iocb(ql_adapter_state_t *ha, ql_request_q_t *req_q, ql_srb_t *sp, in ql_ip_24xx_iocb() argument
1351 QL_PRINT_3(ha, "started\n"); in ql_ip_24xx_iocb()
1390 ql_continuation_iocb(ha, req_q, cp, seg_cnt, B_TRUE); in ql_ip_24xx_iocb()
1393 QL_PRINT_3(ha, "done\n"); in ql_ip_24xx_iocb()
1407 ql_isp_rcvbuf(ql_adapter_state_t *ha) in ql_isp_rcvbuf() argument
1418 if (CFG_IST(ha, CFG_CTRL_24XX)) { in ql_isp_rcvbuf()
1419 ql_isp24xx_rcvbuf(ha); in ql_isp_rcvbuf()
1423 QL_PRINT_3(ha, "started\n"); in ql_isp_rcvbuf()
1426 ADAPTER_STATE_LOCK(ha); in ql_isp_rcvbuf()
1429 index = RD16_IO_REG(ha, mailbox_out[8]); in ql_isp_rcvbuf()
1431 index1 = RD16_IO_REG(ha, mailbox_out[8]); in ql_isp_rcvbuf()
1441 EL(ha, "max mb8 debounce retries exceeded\n"); in ql_isp_rcvbuf()
1444 rcv_q_cnt = (uint16_t)(ha->rcvbuf_ring_index < index ? in ql_isp_rcvbuf()
1445 index - ha->rcvbuf_ring_index : RCVBUF_CONTAINER_CNT - in ql_isp_rcvbuf()
1446 (ha->rcvbuf_ring_index - index)); in ql_isp_rcvbuf()
1456 QL_UB_LOCK(ha); in ql_isp_rcvbuf()
1458 ubp = ha->ub_array[index]; in ql_isp_rcvbuf()
1462 (ha->flags & IP_INITIALIZED) && in ql_isp_rcvbuf()
1477 container = ha->rcvbuf_ring_ptr; in ql_isp_rcvbuf()
1482 ddi_put32(ha->rcv_ring.acc_handle, in ql_isp_rcvbuf()
1486 ddi_put32(ha->rcv_ring.acc_handle, in ql_isp_rcvbuf()
1490 ddi_put16(ha->rcv_ring.acc_handle, &container->handle, in ql_isp_rcvbuf()
1493 ha->ub_outcnt++; in ql_isp_rcvbuf()
1496 ha->rcvbuf_ring_index++; in ql_isp_rcvbuf()
1497 if (ha->rcvbuf_ring_index == RCVBUF_CONTAINER_CNT) { in ql_isp_rcvbuf()
1498 ha->rcvbuf_ring_index = 0; in ql_isp_rcvbuf()
1499 ha->rcvbuf_ring_ptr = ha->rcv_ring.bp; in ql_isp_rcvbuf()
1501 ha->rcvbuf_ring_ptr++; in ql_isp_rcvbuf()
1506 QL_UB_UNLOCK(ha); in ql_isp_rcvbuf()
1511 (void) ddi_dma_sync(ha->rcv_ring.dma_handle, 0, in ql_isp_rcvbuf()
1515 WRT16_IO_REG(ha, mailbox_in[8], ha->rcvbuf_ring_index); in ql_isp_rcvbuf()
1519 ADAPTER_STATE_UNLOCK(ha); in ql_isp_rcvbuf()
1521 QL_PRINT_3(ha, "done\n"); in ql_isp_rcvbuf()
1535 ql_isp24xx_rcvbuf(ql_adapter_state_t *ha) in ql_isp24xx_rcvbuf() argument
1543 ql_request_q_t *req_q = ha->req_q[0]; in ql_isp24xx_rcvbuf()
1545 QL_PRINT_3(ha, "started\n"); in ql_isp24xx_rcvbuf()
1549 QL_UB_LOCK(ha); in ql_isp24xx_rcvbuf()
1551 ubp = ha->ub_array[index]; in ql_isp24xx_rcvbuf()
1555 (ha->flags & IP_INITIALIZED) && in ql_isp24xx_rcvbuf()
1560 ha->ub_outcnt++; in ql_isp24xx_rcvbuf()
1566 QL_UB_UNLOCK(ha); in ql_isp24xx_rcvbuf()
1573 rval = ql_req_pkt(ha, req_q, (request_t **)&pkt); in ql_isp24xx_rcvbuf()
1575 EL(ha, "failed, ql_req_pkt=%x\n", rval); in ql_isp24xx_rcvbuf()
1576 QL_UB_LOCK(ha); in ql_isp24xx_rcvbuf()
1577 ha->ub_outcnt--; in ql_isp24xx_rcvbuf()
1579 QL_UB_UNLOCK(ha); in ql_isp24xx_rcvbuf()
1600 ql_isp_cmd(ha, req_q); in ql_isp24xx_rcvbuf()
1606 ql_isp_cmd(ha, req_q); in ql_isp24xx_rcvbuf()
1609 QL_PRINT_3(ha, "done\n"); in ql_isp24xx_rcvbuf()