Lines Matching refs:ioc
83 static struct scsi_cmnd * mptscsih_get_scsi_lookup(MPT_ADAPTER *ioc, int i);
84 static struct scsi_cmnd * mptscsih_getclear_scsi_lookup(MPT_ADAPTER *ioc, int i);
85 static void mptscsih_set_scsi_lookup(MPT_ADAPTER *ioc, int i, struct scsi_cmnd *scmd);
86 static int SCPNT_TO_LOOKUP_IDX(MPT_ADAPTER *ioc, struct scsi_cmnd *scmd);
87 int mptscsih_io_done(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *r);
89 int mptscsih_taskmgmt_complete(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *r);
91 static int mptscsih_AddSGE(MPT_ADAPTER *ioc, struct scsi_cmnd *SCpnt,
93 static void mptscsih_freeChainBuffers(MPT_ADAPTER *ioc, int req_idx);
100 int mptscsih_ioc_reset(MPT_ADAPTER *ioc, int post_reset);
101 int mptscsih_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply);
103 int mptscsih_scandv_complete(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *r);
190 mptscsih_getFreeChainBuffer(MPT_ADAPTER *ioc, int *retIndex) in mptscsih_getFreeChainBuffer() argument
197 dsgprintk(ioc, printk(MYIOC_s_DEBUG_FMT "getFreeChainBuffer called\n", in mptscsih_getFreeChainBuffer()
198 ioc->name)); in mptscsih_getFreeChainBuffer()
199 spin_lock_irqsave(&ioc->FreeQlock, flags); in mptscsih_getFreeChainBuffer()
200 if (!list_empty(&ioc->FreeChainQ)) { in mptscsih_getFreeChainBuffer()
203 chainBuf = list_entry(ioc->FreeChainQ.next, MPT_FRAME_HDR, in mptscsih_getFreeChainBuffer()
206 offset = (u8 *)chainBuf - (u8 *)ioc->ChainBuffer; in mptscsih_getFreeChainBuffer()
207 chain_idx = offset / ioc->req_sz; in mptscsih_getFreeChainBuffer()
209 dsgprintk(ioc, printk(MYIOC_s_DEBUG_FMT in mptscsih_getFreeChainBuffer()
211 ioc->name, chainBuf, ioc->ChainBuffer, offset, chain_idx)); in mptscsih_getFreeChainBuffer()
215 dfailprintk(ioc, printk(MYIOC_s_ERR_FMT "getFreeChainBuffer failed\n", in mptscsih_getFreeChainBuffer()
216 ioc->name)); in mptscsih_getFreeChainBuffer()
218 spin_unlock_irqrestore(&ioc->FreeQlock, flags); in mptscsih_getFreeChainBuffer()
235 mptscsih_AddSGE(MPT_ADAPTER *ioc, struct scsi_cmnd *SCpnt, in mptscsih_AddSGE() argument
261 frm_sz = ioc->req_sz; in mptscsih_AddSGE()
337 mptscsih_add_chain((char *)chainSge, 0, sgeOffset, ioc->ChainBufferDMA + chain_dma_off); in mptscsih_AddSGE()
343 RequestNB = (((sgeOffset - 1) >> ioc->NBShiftFactor) + 1) & 0x03; in mptscsih_AddSGE()
344 dsgprintk(ioc, printk(MYIOC_s_DEBUG_FMT in mptscsih_AddSGE()
345 "Single Buffer RequestNB=%x, sgeOffset=%d\n", ioc->name, RequestNB, sgeOffset)); in mptscsih_AddSGE()
346 ioc->RequestNB[req_idx] = RequestNB; in mptscsih_AddSGE()
360 dsgprintk(ioc, printk(MYIOC_s_DEBUG_FMT "SG: Chain Required! sg done %d\n", in mptscsih_AddSGE()
361 ioc->name, sg_done)); in mptscsih_AddSGE()
385 mptscsih_add_chain((char *)chainSge, nextChain, sgeOffset, ioc->ChainBufferDMA + chain_dma_off); in mptscsih_AddSGE()
392 RequestNB = (((sgeOffset - 1) >> ioc->NBShiftFactor) + 1) & 0x03; in mptscsih_AddSGE()
393 …dsgprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Chain Buffer Needed, RequestNB=%x sgeOffset=%d\n", ioc->n… in mptscsih_AddSGE()
394 ioc->RequestNB[req_idx] = RequestNB; in mptscsih_AddSGE()
403 if ((mptscsih_getFreeChainBuffer(ioc, &newIndex)) == FAILED) { in mptscsih_AddSGE()
404 dfailprintk(ioc, printk(MYIOC_s_DEBUG_FMT in mptscsih_AddSGE()
406 ioc->name, pReq->CDB[0], SCpnt)); in mptscsih_AddSGE()
414 ioc->ChainToChain[chain_idx] = newIndex; in mptscsih_AddSGE()
416 ioc->ReqToChain[req_idx] = newIndex; in mptscsih_AddSGE()
419 chain_dma_off = ioc->req_sz * chain_idx; in mptscsih_AddSGE()
426 dsgprintk(ioc, printk(MYIOC_s_DEBUG_FMT " Current buff @ %p (index 0x%x)", in mptscsih_AddSGE()
427 ioc->name, psge, req_idx)); in mptscsih_AddSGE()
431 psge = (char *) (ioc->ChainBuffer + chain_dma_off); in mptscsih_AddSGE()
435 dsgprintk(ioc, printk(MYIOC_s_DEBUG_FMT " Chain buff @ %p (index 0x%x)\n", in mptscsih_AddSGE()
436 ioc->name, psge, chain_idx)); in mptscsih_AddSGE()
448 mptscsih_issue_sep_command(MPT_ADAPTER *ioc, VirtTarget *vtarget, in mptscsih_issue_sep_command() argument
454 if (ioc->bus_type != SAS) in mptscsih_issue_sep_command()
462 if ((mf = mpt_get_msg_frame(ioc->InternalCtx, ioc)) == NULL) { in mptscsih_issue_sep_command()
463 dfailprintk(ioc, printk(MYIOC_s_WARN_FMT "%s: no msg frames!!\n", in mptscsih_issue_sep_command()
464 ioc->name,__func__)); in mptscsih_issue_sep_command()
474 devtverboseprintk(ioc, printk(MYIOC_s_DEBUG_FMT in mptscsih_issue_sep_command()
476 ioc->name, SlotStatus, SEPMsg->Bus, SEPMsg->TargetID)); in mptscsih_issue_sep_command()
477 mpt_put_msg_frame(ioc->DoneCtx, ioc, mf); in mptscsih_issue_sep_command()
492 mptscsih_info_scsiio(MPT_ADAPTER *ioc, struct scsi_cmnd *sc, SCSIIOReply_t * pScsiReply) in mptscsih_info_scsiio() argument
596 ioc->name, pScsiReply->Bus, pScsiReply->TargetID); in mptscsih_info_scsiio()
598 "resid = %d\n", ioc->name, scsi_bufflen(sc), sc->underflow, in mptscsih_info_scsiio()
601 "sc->result = %08X\n", ioc->name, le16_to_cpu(pScsiReply->TaskTag), in mptscsih_info_scsiio()
605 ioc->name, desc, ioc_status, desc1, pScsiReply->SCSIStatus, in mptscsih_info_scsiio()
614 "[0x%02x,0x%02x,0x%02x]\n", ioc->name, skey, asc, ascq); in mptscsih_info_scsiio()
623 ioc->name, le32_to_cpu(pScsiReply->ResponseInfo)); in mptscsih_info_scsiio()
643 mptscsih_io_done(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *mr) in mptscsih_io_done() argument
653 hd = shost_priv(ioc->sh); in mptscsih_io_done()
660 ioc->name); in mptscsih_io_done()
663 ioc->name, req_idx, req_idx_MR, mf, mr, in mptscsih_io_done()
664 mptscsih_get_scsi_lookup(ioc, req_idx_MR)); in mptscsih_io_done()
668 sc = mptscsih_getclear_scsi_lookup(ioc, req_idx); in mptscsih_io_done()
678 ioc->name); in mptscsih_io_done()
680 mptscsih_freeChainBuffers(ioc, req_idx); in mptscsih_io_done()
685 mptscsih_freeChainBuffers(ioc, req_idx); in mptscsih_io_done()
694 if((ioc->facts.MsgVersion >= MPI_VERSION_01_05) && pScsiReply){ in mptscsih_io_done()
695 dmfprintk(ioc, printk(MYIOC_s_DEBUG_FMT in mptscsih_io_done()
697 ioc->name, mf, mr, sc, req_idx, pScsiReply->TaskTag)); in mptscsih_io_done()
699 dmfprintk(ioc, printk(MYIOC_s_DEBUG_FMT in mptscsih_io_done()
701 ioc->name, mf, mr, sc, req_idx)); in mptscsih_io_done()
742 "FCP_ResponseInfo=%08xh\n", ioc->name, in mptscsih_io_done()
765 if (ioc->bus_type != FC) in mptscsih_io_done()
779 mptscsih_issue_sep_command(ioc, vtarget, in mptscsih_io_done()
786 if ( ioc->bus_type == SAS ) { in mptscsih_io_done()
795 } else if (ioc->bus_type == FC) { in mptscsih_io_done()
827 dreplyprintk(ioc, printk(MYIOC_s_DEBUG_FMT in mptscsih_io_done()
829 ioc->name, sc->result, sc->device->channel, sc->device->id)); in mptscsih_io_done()
861 dreplyprintk(ioc, printk(MYIOC_s_DEBUG_FMT in mptscsih_io_done()
863 ioc->name, sc->underflow)); in mptscsih_io_done()
864 dreplyprintk(ioc, printk(MYIOC_s_DEBUG_FMT in mptscsih_io_done()
865 " ActBytesXferd=%02xh\n", ioc->name, xfer_cnt)); in mptscsih_io_done()
944 if (sc->result && (ioc->debug_level & MPT_DEBUG_REPLY)) in mptscsih_io_done()
945 mptscsih_info_scsiio(ioc, sc, pScsiReply); in mptscsih_io_done()
956 mptscsih_freeChainBuffers(ioc, req_idx); in mptscsih_io_done()
973 MPT_ADAPTER *ioc = hd->ioc; in mptscsih_flush_running_cmds() local
979 for (ii= 0; ii < ioc->req_depth; ii++) { in mptscsih_flush_running_cmds()
980 sc = mptscsih_getclear_scsi_lookup(ioc, ii); in mptscsih_flush_running_cmds()
983 mf = (SCSIIORequest_t *)MPT_INDEX_2_MFPTR(ioc, ii); in mptscsih_flush_running_cmds()
988 mptscsih_freeChainBuffers(ioc, ii); in mptscsih_flush_running_cmds()
989 mpt_free_msg_frame(ioc, (MPT_FRAME_HDR *)mf); in mptscsih_flush_running_cmds()
997 " mf = %p, idx=%x\n", ioc->name, channel, id, sc, mf, ii); in mptscsih_flush_running_cmds()
1023 MPT_ADAPTER *ioc = hd->ioc; in mptscsih_search_running_cmds() local
1026 spin_lock_irqsave(&ioc->scsi_lookup_lock, flags); in mptscsih_search_running_cmds()
1027 for (ii = 0; ii < ioc->req_depth; ii++) { in mptscsih_search_running_cmds()
1028 if ((sc = ioc->ScsiLookup[ii]) != NULL) { in mptscsih_search_running_cmds()
1030 mf = (SCSIIORequest_t *)MPT_INDEX_2_MFPTR(ioc, ii); in mptscsih_search_running_cmds()
1049 ioc->ScsiLookup[ii] = NULL; in mptscsih_search_running_cmds()
1050 spin_unlock_irqrestore(&ioc->scsi_lookup_lock, flags); in mptscsih_search_running_cmds()
1051 mptscsih_freeChainBuffers(ioc, ii); in mptscsih_search_running_cmds()
1052 mpt_free_msg_frame(ioc, (MPT_FRAME_HDR *)mf); in mptscsih_search_running_cmds()
1057 "fw_id %d, sc=%p, mf = %p, idx=%x\n", ioc->name, vdevice->vtarget->channel, in mptscsih_search_running_cmds()
1060 spin_lock_irqsave(&ioc->scsi_lookup_lock, flags); in mptscsih_search_running_cmds()
1063 spin_unlock_irqrestore(&ioc->scsi_lookup_lock, flags); in mptscsih_search_running_cmds()
1086 MPT_ADAPTER *ioc; in mptscsih_report_queue_full() local
1094 ioc = hd->ioc; in mptscsih_report_queue_full()
1096 dprintk(ioc, printk(MYIOC_s_WARN_FMT "Device (%d:%d:%d) reported QUEUE_FULL!\n", in mptscsih_report_queue_full()
1097 ioc->name, 0, sc->device->id, sc->device->lun)); in mptscsih_report_queue_full()
1112 MPT_ADAPTER *ioc = pci_get_drvdata(pdev); in mptscsih_remove() local
1113 struct Scsi_Host *host = ioc->sh; in mptscsih_remove()
1131 if (ioc->ScsiLookup != NULL) { in mptscsih_remove()
1132 sz1 = ioc->req_depth * sizeof(void *); in mptscsih_remove()
1133 kfree(ioc->ScsiLookup); in mptscsih_remove()
1134 ioc->ScsiLookup = NULL; in mptscsih_remove()
1137 dprintk(ioc, printk(MYIOC_s_DEBUG_FMT in mptscsih_remove()
1139 ioc->name, sz1)); in mptscsih_remove()
1145 ioc->sh = NULL; in mptscsih_remove()
1173 MPT_ADAPTER *ioc = pci_get_drvdata(pdev); in mptscsih_suspend() local
1175 scsi_block_requests(ioc->sh); in mptscsih_suspend()
1190 MPT_ADAPTER *ioc = pci_get_drvdata(pdev); in mptscsih_resume() local
1194 scsi_unblock_requests(ioc->sh); in mptscsih_resume()
1223 mpt_print_ioc_summary(h->ioc, h->info_kbuf, &size, 0, 0); in mptscsih_info()
1275 mptscsih_host_info(MPT_ADAPTER *ioc, char *pbuf, off_t offset, int len) in mptscsih_host_info() argument
1284 mptscsih_copy_info(&info, "%s: %s, ", ioc->name, ioc->prod_name); in mptscsih_host_info()
1285 mptscsih_copy_info(&info, "%s%08xh, ", MPT_FW_REV_MAGIC_ID_STRING, ioc->facts.FWVersion.Word); in mptscsih_host_info()
1286 mptscsih_copy_info(&info, "Ports=%d, ", ioc->facts.NumberOfPorts); in mptscsih_host_info()
1287 mptscsih_copy_info(&info, "MaxQ=%d\n", ioc->req_depth); in mptscsih_host_info()
1310 MPT_ADAPTER *ioc = hd->ioc; in mptscsih_proc_info() local
1321 size = mptscsih_host_info(ioc, buffer, offset, length); in mptscsih_proc_info()
1356 MPT_ADAPTER *ioc; in mptscsih_qcmd() local
1359 ioc = hd->ioc; in mptscsih_qcmd()
1363 dmfprintk(ioc, printk(MYIOC_s_DEBUG_FMT "qcmd: SCpnt=%p, done()=%p\n", in mptscsih_qcmd()
1364 ioc->name, SCpnt, done)); in mptscsih_qcmd()
1367 dtmprintk(ioc, printk(MYIOC_s_WARN_FMT "qcmd: SCpnt=%p timeout + 60HZ\n", in mptscsih_qcmd()
1368 ioc->name, SCpnt)); in mptscsih_qcmd()
1375 if ((mf = mpt_get_msg_frame(ioc->DoneCtx, ioc)) == NULL) { in mptscsih_qcmd()
1376 dprintk(ioc, printk(MYIOC_s_WARN_FMT "QueueCmd, no msg frames!!\n", in mptscsih_qcmd()
1377 ioc->name)); in mptscsih_qcmd()
1443 pScsiReq->SenseBufferLowAddr = cpu_to_le32(ioc->sense_buf_low_dma in mptscsih_qcmd()
1455 if (mptscsih_AddSGE(ioc, SCpnt, pScsiReq, my_idx) != SUCCESS) in mptscsih_qcmd()
1460 mptscsih_set_scsi_lookup(ioc, my_idx, SCpnt); in mptscsih_qcmd()
1462 mpt_put_msg_frame(ioc->DoneCtx, ioc, mf); in mptscsih_qcmd()
1463 dmfprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Issued SCSI cmd (%p) mf=%p idx=%d\n", in mptscsih_qcmd()
1464 ioc->name, SCpnt, mf, my_idx)); in mptscsih_qcmd()
1465 DBG_DUMP_REQUEST_FRAME(ioc, (u32 *)mf); in mptscsih_qcmd()
1469 mptscsih_freeChainBuffers(ioc, my_idx); in mptscsih_qcmd()
1470 mpt_free_msg_frame(ioc, mf); in mptscsih_qcmd()
1485 mptscsih_freeChainBuffers(MPT_ADAPTER *ioc, int req_idx) in mptscsih_freeChainBuffers() argument
1495 chain_idx = ioc->ReqToChain[req_idx]; in mptscsih_freeChainBuffers()
1496 ioc->ReqToChain[req_idx] = MPT_HOST_NO_CHAIN; in mptscsih_freeChainBuffers()
1501 next = ioc->ChainToChain[chain_idx]; in mptscsih_freeChainBuffers()
1506 ioc->ChainToChain[chain_idx] = MPT_HOST_NO_CHAIN; in mptscsih_freeChainBuffers()
1508 chain = (MPT_FRAME_HDR *) (ioc->ChainBuffer in mptscsih_freeChainBuffers()
1509 + (chain_idx * ioc->req_sz)); in mptscsih_freeChainBuffers()
1511 spin_lock_irqsave(&ioc->FreeQlock, flags); in mptscsih_freeChainBuffers()
1512 list_add_tail(&chain->u.frame.linkage.list, &ioc->FreeChainQ); in mptscsih_freeChainBuffers()
1513 spin_unlock_irqrestore(&ioc->FreeQlock, flags); in mptscsih_freeChainBuffers()
1515 dmfprintk(ioc, printk(MYIOC_s_DEBUG_FMT "FreeChainBuffers (index %d)\n", in mptscsih_freeChainBuffers()
1516 ioc->name, chain_idx)); in mptscsih_freeChainBuffers()
1553 MPT_ADAPTER *ioc; in mptscsih_TMHandler() local
1558 ioc = hd->ioc; in mptscsih_TMHandler()
1559 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT "TMHandler Entered!\n", ioc->name)); in mptscsih_TMHandler()
1563 spin_lock_irqsave(&ioc->diagLock, flags); in mptscsih_TMHandler()
1564 if ((ioc->diagPending) || (ioc->alt_ioc && ioc->alt_ioc->diagPending)) { in mptscsih_TMHandler()
1565 spin_unlock_irqrestore(&ioc->diagLock, flags); in mptscsih_TMHandler()
1568 spin_unlock_irqrestore(&ioc->diagLock, flags); in mptscsih_TMHandler()
1579 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT "TMHandler abort: " in mptscsih_TMHandler()
1581 ioc->name, hd->tmPending)); in mptscsih_TMHandler()
1584 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT "TMHandler target " in mptscsih_TMHandler()
1586 "to complete! \n", ioc->name, in mptscsih_TMHandler()
1590 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT "TMHandler bus reset: " in mptscsih_TMHandler()
1592 ioc->name, hd->tmPending)); in mptscsih_TMHandler()
1596 spin_lock_irqsave(&ioc->FreeQlock, flags); in mptscsih_TMHandler()
1598 spin_unlock_irqrestore(&ioc->FreeQlock, flags); in mptscsih_TMHandler()
1601 ioc_raw_state = mpt_GetIocState(ioc, 0); in mptscsih_TMHandler()
1606 ioc->name, type, ioc_raw_state); in mptscsih_TMHandler()
1607 printk(MYIOC_s_WARN_FMT " Issuing HardReset!!\n", ioc->name); in mptscsih_TMHandler()
1608 if (mpt_HardResetHandler(ioc, CAN_SLEEP) < 0) in mptscsih_TMHandler()
1610 "FAILED!!\n", ioc->name); in mptscsih_TMHandler()
1618 ioc->name, type, ioc_raw_state); in mptscsih_TMHandler()
1631 ioc->name); in mptscsih_TMHandler()
1633 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Issue of TaskMgmt Successful!\n", in mptscsih_TMHandler()
1634 ioc->name)); in mptscsih_TMHandler()
1636 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT in mptscsih_TMHandler()
1637 "TMHandler rc = %d!\n", ioc->name, rc)); in mptscsih_TMHandler()
1669 MPT_ADAPTER *ioc = hd->ioc; in mptscsih_IssueTaskMgmt() local
1673 if ((mf = mpt_get_msg_frame(ioc->TaskCtx, ioc)) == NULL) { in mptscsih_IssueTaskMgmt()
1674 dfailprintk(ioc, printk(MYIOC_s_ERR_FMT "IssueTaskMgmt, no msg frames!!\n", in mptscsih_IssueTaskMgmt()
1675 ioc->name)); in mptscsih_IssueTaskMgmt()
1678 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT "IssueTaskMgmt request @ %p\n", in mptscsih_IssueTaskMgmt()
1679 ioc->name, mf)); in mptscsih_IssueTaskMgmt()
1702 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT "IssueTaskMgmt: ctx2abort (0x%08x) " in mptscsih_IssueTaskMgmt()
1703 "type=%d\n", ioc->name, ctx2abort, type)); in mptscsih_IssueTaskMgmt()
1705 DBG_DUMP_TM_REQUEST_FRAME(ioc, (u32 *)pScsiTm); in mptscsih_IssueTaskMgmt()
1707 if ((ioc->facts.IOCCapabilities & MPI_IOCFACTS_CAPABILITY_HIGH_PRI_Q) && in mptscsih_IssueTaskMgmt()
1708 (ioc->facts.MsgVersion >= MPI_VERSION_01_05)) in mptscsih_IssueTaskMgmt()
1709 mpt_put_msg_frame_hi_pri(ioc->TaskCtx, ioc, mf); in mptscsih_IssueTaskMgmt()
1711 retval = mpt_send_handshake_request(ioc->TaskCtx, ioc, in mptscsih_IssueTaskMgmt()
1714 dfailprintk(ioc, printk(MYIOC_s_ERR_FMT "send_handshake FAILED!" in mptscsih_IssueTaskMgmt()
1715 " (hd %p, ioc %p, mf %p, rc=%d) \n", ioc->name, hd, in mptscsih_IssueTaskMgmt()
1716 ioc, mf, retval)); in mptscsih_IssueTaskMgmt()
1722 dfailprintk(ioc, printk(MYIOC_s_ERR_FMT "task management request TIMED OUT!" in mptscsih_IssueTaskMgmt()
1723 " (hd %p, ioc %p, mf %p) \n", ioc->name, hd, in mptscsih_IssueTaskMgmt()
1724 ioc, mf)); in mptscsih_IssueTaskMgmt()
1725 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Calling HardReset! \n", in mptscsih_IssueTaskMgmt()
1726 ioc->name)); in mptscsih_IssueTaskMgmt()
1727 retval = mpt_HardResetHandler(ioc, CAN_SLEEP); in mptscsih_IssueTaskMgmt()
1728 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT "rc=%d \n", in mptscsih_IssueTaskMgmt()
1729 ioc->name, retval)); in mptscsih_IssueTaskMgmt()
1750 mpt_free_msg_frame(ioc, mf); in mptscsih_IssueTaskMgmt()
1757 mptscsih_get_tm_timeout(MPT_ADAPTER *ioc) in mptscsih_get_tm_timeout() argument
1759 switch (ioc->bus_type) { in mptscsih_get_tm_timeout()
1788 MPT_ADAPTER *ioc; in mptscsih_abort() local
1800 ioc = hd->ioc; in mptscsih_abort()
1802 ioc->name, SCpnt); in mptscsih_abort()
1807 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT in mptscsih_abort()
1809 ioc->name, SCpnt)); in mptscsih_abort()
1819 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT in mptscsih_abort()
1821 ioc->name, SCpnt)); in mptscsih_abort()
1829 if ((scpnt_idx = SCPNT_TO_LOOKUP_IDX(ioc, SCpnt)) < 0) { in mptscsih_abort()
1834 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT "task abort: " in mptscsih_abort()
1835 "Command not in the active list! (sc=%p)\n", ioc->name, in mptscsih_abort()
1850 mpt_halt_firmware(ioc); in mptscsih_abort()
1859 mf = MPT_INDEX_2_MFPTR(ioc, scpnt_idx); in mptscsih_abort()
1866 ctx2abort, mptscsih_get_tm_timeout(ioc)); in mptscsih_abort()
1868 if (SCPNT_TO_LOOKUP_IDX(ioc, SCpnt) == scpnt_idx && in mptscsih_abort()
1874 ioc->name, ((retval == 0) ? "SUCCESS" : "FAILED" ), SCpnt); in mptscsih_abort()
1897 MPT_ADAPTER *ioc; in mptscsih_dev_reset() local
1907 ioc = hd->ioc; in mptscsih_dev_reset()
1909 ioc->name, SCpnt); in mptscsih_dev_reset()
1932 mptscsih_get_tm_timeout(ioc)); in mptscsih_dev_reset()
1936 ioc->name, ((retval == 0) ? "SUCCESS" : "FAILED" ), SCpnt); in mptscsih_dev_reset()
1960 MPT_ADAPTER *ioc; in mptscsih_bus_reset() local
1970 ioc = hd->ioc; in mptscsih_bus_reset()
1972 ioc->name, SCpnt); in mptscsih_bus_reset()
1980 vdevice->vtarget->channel, 0, 0, 0, mptscsih_get_tm_timeout(ioc)); in mptscsih_bus_reset()
1983 ioc->name, ((retval == 0) ? "SUCCESS" : "FAILED" ), SCpnt); in mptscsih_bus_reset()
2005 MPT_ADAPTER *ioc; in mptscsih_host_reset() local
2017 ioc = hd->ioc; in mptscsih_host_reset()
2019 ioc->name, SCpnt); in mptscsih_host_reset()
2024 if (mpt_HardResetHandler(ioc, CAN_SLEEP) < 0) { in mptscsih_host_reset()
2036 ioc->name, ((retval == 0) ? "SUCCESS" : "FAILED" ), SCpnt); in mptscsih_host_reset()
2054 MPT_ADAPTER *ioc = hd->ioc; in mptscsih_tm_pending_wait() local
2057 spin_lock_irqsave(&ioc->FreeQlock, flags); in mptscsih_tm_pending_wait()
2061 spin_unlock_irqrestore(&ioc->FreeQlock, flags); in mptscsih_tm_pending_wait()
2065 spin_unlock_irqrestore(&ioc->FreeQlock, flags); in mptscsih_tm_pending_wait()
2086 MPT_ADAPTER *ioc = hd->ioc; in mptscsih_tm_wait_for_completion() local
2089 spin_lock_irqsave(&ioc->FreeQlock, flags); in mptscsih_tm_wait_for_completion()
2092 spin_unlock_irqrestore(&ioc->FreeQlock, flags); in mptscsih_tm_wait_for_completion()
2095 spin_unlock_irqrestore(&ioc->FreeQlock, flags); in mptscsih_tm_wait_for_completion()
2104 mptscsih_taskmgmt_response_code(MPT_ADAPTER *ioc, u8 response_code) in mptscsih_taskmgmt_response_code() argument
2135 ioc->name, response_code, desc); in mptscsih_taskmgmt_response_code()
2153 mptscsih_taskmgmt_complete(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *mr) in mptscsih_taskmgmt_complete() argument
2163 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT "TaskMgmt completed (mf=%p,mr=%p)\n", in mptscsih_taskmgmt_complete()
2164 ioc->name, mf, mr)); in mptscsih_taskmgmt_complete()
2165 if (!ioc->sh) { in mptscsih_taskmgmt_complete()
2166 dtmprintk(ioc, printk(MYIOC_s_WARN_FMT in mptscsih_taskmgmt_complete()
2167 "TaskMgmt Complete: NULL Scsi Host Ptr\n", ioc->name)); in mptscsih_taskmgmt_complete()
2172 dtmprintk(ioc, printk(MYIOC_s_WARN_FMT in mptscsih_taskmgmt_complete()
2173 "ERROR! TaskMgmt Reply: NULL Request %p\n", ioc->name, mf)); in mptscsih_taskmgmt_complete()
2177 hd = shost_priv(ioc->sh); in mptscsih_taskmgmt_complete()
2184 if (ioc->facts.MsgVersion >= MPI_VERSION_01_05 && in mptscsih_taskmgmt_complete()
2186 mptscsih_taskmgmt_response_code(ioc, in mptscsih_taskmgmt_complete()
2188 DBG_DUMP_TM_REPLY_FRAME(ioc, (u32 *)pScsiTmReply); in mptscsih_taskmgmt_complete()
2191 if ((ioc->debug_level & MPT_DEBUG_REPLY) || in mptscsih_taskmgmt_complete()
2192 (ioc->debug_level & MPT_DEBUG_TM )) in mptscsih_taskmgmt_complete()
2195 "term_cmnds=%d\n", __func__, ioc->id, pScsiTmReply->Bus, in mptscsih_taskmgmt_complete()
2202 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT " TaskMgmt SUCCESS\n", ioc->name)); in mptscsih_taskmgmt_complete()
2227 if (mpt_HardResetHandler(ioc, NO_SLEEP) < 0) in mptscsih_taskmgmt_complete()
2228 printk(MYIOC_s_WARN_FMT " Firmware Reload FAILED!!\n", ioc->name); in mptscsih_taskmgmt_complete()
2237 spin_lock_irqsave(&ioc->FreeQlock, flags); in mptscsih_taskmgmt_complete()
2241 spin_unlock_irqrestore(&ioc->FreeQlock, flags); in mptscsih_taskmgmt_complete()
2290 mptscsih_is_phys_disk(MPT_ADAPTER *ioc, u8 channel, u8 id) in mptscsih_is_phys_disk() argument
2296 if (!ioc->raid_data.pIocPg3) in mptscsih_is_phys_disk()
2298 for (i = 0; i < ioc->raid_data.pIocPg3->NumPhysDisks; i++) { in mptscsih_is_phys_disk()
2299 if ((id == ioc->raid_data.pIocPg3->PhysDisk[i].PhysDiskID) && in mptscsih_is_phys_disk()
2300 (channel == ioc->raid_data.pIocPg3->PhysDisk[i].PhysDiskBus)) { in mptscsih_is_phys_disk()
2309 if (list_empty(&ioc->raid_data.inactive_list)) in mptscsih_is_phys_disk()
2312 mutex_lock(&ioc->raid_data.inactive_list_mutex); in mptscsih_is_phys_disk()
2313 list_for_each_entry(component_info, &ioc->raid_data.inactive_list, in mptscsih_is_phys_disk()
2319 mutex_unlock(&ioc->raid_data.inactive_list_mutex); in mptscsih_is_phys_disk()
2327 mptscsih_raid_id_to_num(MPT_ADAPTER *ioc, u8 channel, u8 id) in mptscsih_raid_id_to_num() argument
2333 if (!ioc->raid_data.pIocPg3) in mptscsih_raid_id_to_num()
2335 for (i = 0; i < ioc->raid_data.pIocPg3->NumPhysDisks; i++) { in mptscsih_raid_id_to_num()
2336 if ((id == ioc->raid_data.pIocPg3->PhysDisk[i].PhysDiskID) && in mptscsih_raid_id_to_num()
2337 (channel == ioc->raid_data.pIocPg3->PhysDisk[i].PhysDiskBus)) { in mptscsih_raid_id_to_num()
2338 rc = ioc->raid_data.pIocPg3->PhysDisk[i].PhysDiskNum; in mptscsih_raid_id_to_num()
2346 if (list_empty(&ioc->raid_data.inactive_list)) in mptscsih_raid_id_to_num()
2349 mutex_lock(&ioc->raid_data.inactive_list_mutex); in mptscsih_raid_id_to_num()
2350 list_for_each_entry(component_info, &ioc->raid_data.inactive_list, in mptscsih_raid_id_to_num()
2356 mutex_unlock(&ioc->raid_data.inactive_list_mutex); in mptscsih_raid_id_to_num()
2403 MPT_ADAPTER *ioc = hd->ioc; in mptscsih_change_queue_depth() local
2408 if (ioc->bus_type == SPI) { in mptscsih_change_queue_depth()
2444 MPT_ADAPTER *ioc = hd->ioc; in mptscsih_slave_configure() local
2450 dsprintk(ioc, printk(MYIOC_s_DEBUG_FMT in mptscsih_slave_configure()
2452 ioc->name, sdev, sdev->channel, sdev->id, sdev->lun)); in mptscsih_slave_configure()
2453 if (ioc->bus_type == SPI) in mptscsih_slave_configure()
2454 dsprintk(ioc, printk(MYIOC_s_DEBUG_FMT in mptscsih_slave_configure()
2456 ioc->name, sdev->sdtr, sdev->wdtr, in mptscsih_slave_configure()
2462 dsprintk(ioc, printk(MYIOC_s_DEBUG_FMT in mptscsih_slave_configure()
2464 ioc->name, sdev->queue_depth, vtarget->tflags)); in mptscsih_slave_configure()
2466 if (ioc->bus_type == SPI) in mptscsih_slave_configure()
2467 dsprintk(ioc, printk(MYIOC_s_DEBUG_FMT in mptscsih_slave_configure()
2469 ioc->name, vtarget->negoFlags, vtarget->maxOffset, in mptscsih_slave_configure()
2472 dsprintk(ioc, printk(MYIOC_s_DEBUG_FMT in mptscsih_slave_configure()
2474 ioc->name,sdev->tagged_supported, sdev->simple_tags, in mptscsih_slave_configure()
2496 MPT_ADAPTER *ioc = hd->ioc; in mptscsih_copy_sense_data() local
2509 sense_data = ((u8 *)ioc->sense_buf_pool + (req_index * MPT_SENSE_BUFFER_ALLOC)); in mptscsih_copy_sense_data()
2514 if ((ioc->events) && (ioc->eventTypes & (1 << MPI_EVENT_SCSI_DEVICE_STATUS_CHANGE))) { in mptscsih_copy_sense_data()
2518 idx = ioc->eventContext % MPTCTL_EVENT_LOG_SIZE; in mptscsih_copy_sense_data()
2519 ioc->events[idx].event = MPI_EVENT_SCSI_DEVICE_STATUS_CHANGE; in mptscsih_copy_sense_data()
2520 ioc->events[idx].eventContext = ioc->eventContext; in mptscsih_copy_sense_data()
2522 ioc->events[idx].data[0] = (pReq->LUN[1] << 24) | in mptscsih_copy_sense_data()
2526 ioc->events[idx].data[1] = (sense_data[13] << 8) | sense_data[12]; in mptscsih_copy_sense_data()
2528 ioc->eventContext++; in mptscsih_copy_sense_data()
2529 if (ioc->pcidev->vendor == in mptscsih_copy_sense_data()
2531 mptscsih_issue_sep_command(ioc, in mptscsih_copy_sense_data()
2539 dprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Hmmm... SenseData len=0! (?)\n", in mptscsih_copy_sense_data()
2540 ioc->name)); in mptscsih_copy_sense_data()
2554 mptscsih_get_scsi_lookup(MPT_ADAPTER *ioc, int i) in mptscsih_get_scsi_lookup() argument
2559 spin_lock_irqsave(&ioc->scsi_lookup_lock, flags); in mptscsih_get_scsi_lookup()
2560 scmd = ioc->ScsiLookup[i]; in mptscsih_get_scsi_lookup()
2561 spin_unlock_irqrestore(&ioc->scsi_lookup_lock, flags); in mptscsih_get_scsi_lookup()
2576 mptscsih_getclear_scsi_lookup(MPT_ADAPTER *ioc, int i) in mptscsih_getclear_scsi_lookup() argument
2581 spin_lock_irqsave(&ioc->scsi_lookup_lock, flags); in mptscsih_getclear_scsi_lookup()
2582 scmd = ioc->ScsiLookup[i]; in mptscsih_getclear_scsi_lookup()
2583 ioc->ScsiLookup[i] = NULL; in mptscsih_getclear_scsi_lookup()
2584 spin_unlock_irqrestore(&ioc->scsi_lookup_lock, flags); in mptscsih_getclear_scsi_lookup()
2600 mptscsih_set_scsi_lookup(MPT_ADAPTER *ioc, int i, struct scsi_cmnd *scmd) in mptscsih_set_scsi_lookup() argument
2604 spin_lock_irqsave(&ioc->scsi_lookup_lock, flags); in mptscsih_set_scsi_lookup()
2605 ioc->ScsiLookup[i] = scmd; in mptscsih_set_scsi_lookup()
2606 spin_unlock_irqrestore(&ioc->scsi_lookup_lock, flags); in mptscsih_set_scsi_lookup()
2615 SCPNT_TO_LOOKUP_IDX(MPT_ADAPTER *ioc, struct scsi_cmnd *sc) in SCPNT_TO_LOOKUP_IDX() argument
2620 spin_lock_irqsave(&ioc->scsi_lookup_lock, flags); in SCPNT_TO_LOOKUP_IDX()
2621 for (i = 0; i < ioc->req_depth; i++) { in SCPNT_TO_LOOKUP_IDX()
2622 if (ioc->ScsiLookup[i] == sc) { in SCPNT_TO_LOOKUP_IDX()
2629 spin_unlock_irqrestore(&ioc->scsi_lookup_lock, flags); in SCPNT_TO_LOOKUP_IDX()
2635 mptscsih_ioc_reset(MPT_ADAPTER *ioc, int reset_phase) in mptscsih_ioc_reset() argument
2640 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT in mptscsih_ioc_reset()
2642 ioc->name, reset_phase==MPT_IOC_SETUP_RESET ? "setup" : ( in mptscsih_ioc_reset()
2649 if (ioc->sh == NULL || shost_priv(ioc->sh) == NULL) in mptscsih_ioc_reset()
2652 hd = shost_priv(ioc->sh); in mptscsih_ioc_reset()
2655 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Setup-Diag Reset\n", ioc->name)); in mptscsih_ioc_reset()
2664 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Pre-Diag Reset\n", ioc->name)); in mptscsih_ioc_reset()
2681 mpt_free_msg_frame(ioc, hd->cmdPtr); in mptscsih_ioc_reset()
2684 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Pre-Reset complete.\n", ioc->name)); in mptscsih_ioc_reset()
2687 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Post-Diag Reset\n", ioc->name)); in mptscsih_ioc_reset()
2702 spin_lock_irqsave(&ioc->FreeQlock, flags); in mptscsih_ioc_reset()
2704 spin_unlock_irqrestore(&ioc->FreeQlock, flags); in mptscsih_ioc_reset()
2722 dtmprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Post-Reset complete.\n", ioc->name)); in mptscsih_ioc_reset()
2731 mptscsih_event_process(MPT_ADAPTER *ioc, EventNotificationReply_t *pEvReply) in mptscsih_event_process() argument
2736 devtverboseprintk(ioc, printk(MYIOC_s_DEBUG_FMT "MPT event (=%02Xh) routed to SCSI host driver!\n", in mptscsih_event_process()
2737 ioc->name, event)); in mptscsih_event_process()
2739 if (ioc->sh == NULL || in mptscsih_event_process()
2740 ((hd = shost_priv(ioc->sh)) == NULL)) in mptscsih_event_process()
2749 if (hd && (ioc->bus_type == SPI) && (hd->soft_resets < -1)) in mptscsih_event_process()
2778 dprintk(ioc, printk(MYIOC_s_DEBUG_FMT ": Ignoring event (=%02Xh)\n", in mptscsih_event_process()
2779 ioc->name, event)); in mptscsih_event_process()
2812 mptscsih_scandv_complete(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *mr) in mptscsih_scandv_complete() argument
2819 hd = shost_priv(ioc->sh); in mptscsih_scandv_complete()
2822 (mf >= MPT_INDEX_2_MFPTR(ioc, ioc->req_depth))) { in mptscsih_scandv_complete()
2825 ioc->name, mf?"BAD":"NULL", (void *) mf); in mptscsih_scandv_complete()
2831 mptscsih_set_scsi_lookup(ioc, req_idx, NULL); in mptscsih_scandv_complete()
2836 ioc->name, (void *)mf, (void *) hd->cmdPtr, req_idx); in mptscsih_scandv_complete()
2840 ddvprintk(ioc, printk(MYIOC_s_DEBUG_FMT "ScanDvComplete (mf=%p,mr=%p,idx=%d)\n", in mptscsih_scandv_complete()
2841 ioc->name, mf, mr, req_idx)); in mptscsih_scandv_complete()
2905 sense_data = ((u8 *)ioc->sense_buf_pool + in mptscsih_scandv_complete()
2912 ddvprintk(ioc, printk(MYIOC_s_DEBUG_FMT " Check Condition, sense ptr %p\n", in mptscsih_scandv_complete()
2913 ioc->name, sense_data)); in mptscsih_scandv_complete()
2972 MPT_ADAPTER *ioc = hd->ioc; in mptscsih_timer_expired() local
2974 ddvprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Timer Expired! Cmd %p\n", ioc->name, hd->cmdPtr)); in mptscsih_timer_expired()
2988 if (mpt_HardResetHandler(ioc, NO_SLEEP) < 0) { in mptscsih_timer_expired()
2989 printk(MYIOC_s_WARN_FMT "Firmware Reload FAILED!\n", ioc->name); in mptscsih_timer_expired()
2994 printk(MYIOC_s_WARN_FMT "Null cmdPtr!!!!\n", ioc->name); in mptscsih_timer_expired()
3002 ddvprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Timer Expired Complete!\n", ioc->name)); in mptscsih_timer_expired()
3040 MPT_ADAPTER *ioc = hd->ioc; in mptscsih_do_cmd() local
3044 dprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Internal SCSI IO request not allowed in ISR context!\n", in mptscsih_do_cmd()
3045 ioc->name)); in mptscsih_do_cmd()
3146 if ((mf = mpt_get_msg_frame(ioc->InternalCtx, ioc)) == NULL) { in mptscsih_do_cmd()
3147 dfailprintk(ioc, printk(MYIOC_s_WARN_FMT "No msg frames!\n", in mptscsih_do_cmd()
3148 ioc->name)); in mptscsih_do_cmd()
3187 ddvprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Untagged! 0x%2x\n", in mptscsih_do_cmd()
3188 ioc->name, cmd)); in mptscsih_do_cmd()
3195 pScsiReq->SenseBufferLowAddr = cpu_to_le32(ioc->sense_buf_low_dma in mptscsih_do_cmd()
3198 ddvprintk(ioc, printk(MYIOC_s_DEBUG_FMT "Sending Command 0x%x for (%d:%d:%d)\n", in mptscsih_do_cmd()
3199 ioc->name, cmd, io->channel, io->id, io->lun)); in mptscsih_do_cmd()
3234 mpt_put_msg_frame(ioc->InternalCtx, ioc, mf); in mptscsih_do_cmd()
3250 ddvprintk(ioc, printk(MYIOC_s_DEBUG_FMT "_do_cmd: Null pLocal!!!\n", in mptscsih_do_cmd()
3251 ioc->name)); in mptscsih_do_cmd()
3305 MPT_ADAPTER *ioc = hd->ioc; in mptscsih_version_fw_show() local
3308 (ioc->facts.FWVersion.Word & 0xFF000000) >> 24, in mptscsih_version_fw_show()
3309 (ioc->facts.FWVersion.Word & 0x00FF0000) >> 16, in mptscsih_version_fw_show()
3310 (ioc->facts.FWVersion.Word & 0x0000FF00) >> 8, in mptscsih_version_fw_show()
3311 ioc->facts.FWVersion.Word & 0x000000FF); in mptscsih_version_fw_show()
3321 MPT_ADAPTER *ioc = hd->ioc; in mptscsih_version_bios_show() local
3324 (ioc->biosVersion & 0xFF000000) >> 24, in mptscsih_version_bios_show()
3325 (ioc->biosVersion & 0x00FF0000) >> 16, in mptscsih_version_bios_show()
3326 (ioc->biosVersion & 0x0000FF00) >> 8, in mptscsih_version_bios_show()
3327 ioc->biosVersion & 0x000000FF); in mptscsih_version_bios_show()
3337 MPT_ADAPTER *ioc = hd->ioc; in mptscsih_version_mpi_show() local
3339 return snprintf(buf, PAGE_SIZE, "%03x\n", ioc->facts.MsgVersion); in mptscsih_version_mpi_show()
3350 MPT_ADAPTER *ioc = hd->ioc; in mptscsih_version_product_show() local
3352 return snprintf(buf, PAGE_SIZE, "%s\n", ioc->prod_name); in mptscsih_version_product_show()
3364 MPT_ADAPTER *ioc = hd->ioc; in mptscsih_version_nvdata_persistent_show() local
3367 ioc->nvdata_version_persistent); in mptscsih_version_nvdata_persistent_show()
3378 MPT_ADAPTER *ioc = hd->ioc; in mptscsih_version_nvdata_default_show() local
3380 return snprintf(buf, PAGE_SIZE, "%02xh\n",ioc->nvdata_version_default); in mptscsih_version_nvdata_default_show()
3391 MPT_ADAPTER *ioc = hd->ioc; in mptscsih_board_name_show() local
3393 return snprintf(buf, PAGE_SIZE, "%s\n", ioc->board_name); in mptscsih_board_name_show()
3403 MPT_ADAPTER *ioc = hd->ioc; in mptscsih_board_assembly_show() local
3405 return snprintf(buf, PAGE_SIZE, "%s\n", ioc->board_assembly); in mptscsih_board_assembly_show()
3416 MPT_ADAPTER *ioc = hd->ioc; in mptscsih_board_tracer_show() local
3418 return snprintf(buf, PAGE_SIZE, "%s\n", ioc->board_tracer); in mptscsih_board_tracer_show()
3429 MPT_ADAPTER *ioc = hd->ioc; in mptscsih_io_delay_show() local
3431 return snprintf(buf, PAGE_SIZE, "%02d\n", ioc->io_missing_delay); in mptscsih_io_delay_show()
3442 MPT_ADAPTER *ioc = hd->ioc; in mptscsih_device_delay_show() local
3444 return snprintf(buf, PAGE_SIZE, "%02d\n", ioc->device_missing_delay); in mptscsih_device_delay_show()
3455 MPT_ADAPTER *ioc = hd->ioc; in mptscsih_debug_level_show() local
3457 return snprintf(buf, PAGE_SIZE, "%08xh\n", ioc->debug_level); in mptscsih_debug_level_show()
3465 MPT_ADAPTER *ioc = hd->ioc; in mptscsih_debug_level_store() local
3471 ioc->debug_level = val; in mptscsih_debug_level_store()
3473 ioc->name, ioc->debug_level); in mptscsih_debug_level_store()