Print this page
XXXX introduce drv_sectohz


1386 
1387         if (mpt->m_MPI25)
1388                 mptsas_uflash25((pMpi25FWDownloadRequest)memp,
1389                     mpt->m_acc_req_frame_hdl, size, type, flsh_cookie);
1390         else
1391                 mptsas_uflash2((pMpi2FWDownloadRequest)memp,
1392                     mpt->m_acc_req_frame_hdl, size, type, flsh_cookie);
1393 
1394         /*
1395          * Start command
1396          */
1397         (void) ddi_dma_sync(mpt->m_dma_req_frame_hdl, 0, 0,
1398             DDI_DMA_SYNC_FORDEV);
1399         request_desc = (cmd->cmd_slot << 16) +
1400             MPI2_REQ_DESCRIPT_FLAGS_DEFAULT_TYPE;
1401         cmd->cmd_rfm = NULL;
1402         MPTSAS_START_CMD(mpt, request_desc);
1403 
1404         rvalue = 0;
1405         (void) cv_reltimedwait(&mpt->m_fw_cv, &mpt->m_mutex,
1406             drv_usectohz(60 * MICROSEC), TR_CLOCK_TICK);
1407         if (!(cmd->cmd_flags & CFLAG_FINISHED)) {
1408                 mpt->m_softstate &= ~MPTSAS_SS_MSG_UNIT_RESET;
1409                 if ((mptsas_restart_ioc(mpt)) == DDI_FAILURE) {
1410                         mptsas_log(mpt, CE_WARN, "mptsas_restart_ioc failed");
1411                 }
1412                 rvalue = -1;
1413         }
1414         mptsas_remove_cmd(mpt, cmd);
1415         mptsas_dma_addr_destroy(&flsh_dma_handle, &flsh_accessp);
1416 
1417         return (rvalue);
1418 }
1419 
1420 static int
1421 mptsas_sasdevpage_0_cb(mptsas_t *mpt, caddr_t page_memp,
1422     ddi_acc_handle_t accessp, uint16_t iocstatus, uint32_t iocloginfo,
1423     va_list ap)
1424 {
1425 #ifndef __lock_lint
1426         _NOTE(ARGUNUSED(ap))




1386 
1387         if (mpt->m_MPI25)
1388                 mptsas_uflash25((pMpi25FWDownloadRequest)memp,
1389                     mpt->m_acc_req_frame_hdl, size, type, flsh_cookie);
1390         else
1391                 mptsas_uflash2((pMpi2FWDownloadRequest)memp,
1392                     mpt->m_acc_req_frame_hdl, size, type, flsh_cookie);
1393 
1394         /*
1395          * Start command
1396          */
1397         (void) ddi_dma_sync(mpt->m_dma_req_frame_hdl, 0, 0,
1398             DDI_DMA_SYNC_FORDEV);
1399         request_desc = (cmd->cmd_slot << 16) +
1400             MPI2_REQ_DESCRIPT_FLAGS_DEFAULT_TYPE;
1401         cmd->cmd_rfm = NULL;
1402         MPTSAS_START_CMD(mpt, request_desc);
1403 
1404         rvalue = 0;
1405         (void) cv_reltimedwait(&mpt->m_fw_cv, &mpt->m_mutex,
1406             drv_sectohz(60), TR_CLOCK_TICK);
1407         if (!(cmd->cmd_flags & CFLAG_FINISHED)) {
1408                 mpt->m_softstate &= ~MPTSAS_SS_MSG_UNIT_RESET;
1409                 if ((mptsas_restart_ioc(mpt)) == DDI_FAILURE) {
1410                         mptsas_log(mpt, CE_WARN, "mptsas_restart_ioc failed");
1411                 }
1412                 rvalue = -1;
1413         }
1414         mptsas_remove_cmd(mpt, cmd);
1415         mptsas_dma_addr_destroy(&flsh_dma_handle, &flsh_accessp);
1416 
1417         return (rvalue);
1418 }
1419 
1420 static int
1421 mptsas_sasdevpage_0_cb(mptsas_t *mpt, caddr_t page_memp,
1422     ddi_acc_handle_t accessp, uint16_t iocstatus, uint32_t iocloginfo,
1423     va_list ap)
1424 {
1425 #ifndef __lock_lint
1426         _NOTE(ARGUNUSED(ap))