Lines Matching refs:ioc

89  * @ioc: per adapter object
99 _config_display_some_debug(struct MPT2SAS_ADAPTER *ioc, u16 smid,
105 if (!(ioc->logging_level & MPT_DEBUG_CONFIG))
108 mpi_request = mpt2sas_base_get_msg_frame(ioc, smid);
114 desc = "ioc";
162 "smid(%d)\n", ioc->name, calling_function_name, desc,
172 ioc->name, le16_to_cpu(mpi_reply->IOCStatus),
179 * @ioc: per adapter object
187 _config_alloc_config_dma_memory(struct MPT2SAS_ADAPTER *ioc,
192 if (mem->sz > ioc->config_page_sz) {
193 mem->page = dma_alloc_coherent(&ioc->pdev->dev, mem->sz,
198 ioc->name, __func__, mem->sz);
202 mem->page = ioc->config_page;
203 mem->page_dma = ioc->config_page_dma;
210 * @ioc: per adapter object
218 _config_free_config_dma_memory(struct MPT2SAS_ADAPTER *ioc,
221 if (mem->sz > ioc->config_page_sz)
222 dma_free_coherent(&ioc->pdev->dev, mem->sz, mem->page,
228 * @ioc: per adapter object
240 mpt2sas_config_done(struct MPT2SAS_ADAPTER *ioc, u16 smid, u8 msix_index,
245 if (ioc->config_cmds.status == MPT2_CMD_NOT_USED)
247 if (ioc->config_cmds.smid != smid)
249 ioc->config_cmds.status |= MPT2_CMD_COMPLETE;
250 mpi_reply = mpt2sas_base_get_reply_virt_addr(ioc, reply);
252 ioc->config_cmds.status |= MPT2_CMD_REPLY_VALID;
253 memcpy(ioc->config_cmds.reply, mpi_reply,
256 ioc->config_cmds.status &= ~MPT2_CMD_PENDING;
258 _config_display_some_debug(ioc, smid, "config_done", mpi_reply);
260 ioc->config_cmds.smid = USHRT_MAX;
261 complete(&ioc->config_cmds.done);
267 * @ioc: per adapter object
277 * The ioc->config_cmds.status flag should be MPT2_CMD_NOT_USED before calling
280 * The callback index is set inside `ioc->config_cb_idx.
285 _config_request(struct MPT2SAS_ADAPTER *ioc, Mpi2ConfigRequest_t
298 mutex_lock(&ioc->config_cmds.mutex);
299 if (ioc->config_cmds.status != MPT2_CMD_NOT_USED) {
301 ioc->name, __func__);
302 mutex_unlock(&ioc->config_cmds.mutex);
323 r = _config_alloc_config_dma_memory(ioc, &mem);
330 ioc->base_add_sg_single(&mpi_request->PageBufferSGE,
337 ioc->base_add_sg_single(&mpi_request->PageBufferSGE,
349 ioc->name, __func__, retry_count);
352 ioc_state = mpt2sas_base_get_iocstate(ioc, 1);
356 "%s: failed due to ioc not operational\n",
357 ioc->name, __func__);
358 ioc->config_cmds.status = MPT2_CMD_NOT_USED;
363 ioc_state = mpt2sas_base_get_iocstate(ioc, 1);
365 "operational state(count=%d)\n", ioc->name,
369 printk(MPT2SAS_INFO_FMT "%s: ioc is operational\n",
370 ioc->name, __func__);
372 smid = mpt2sas_base_get_smid(ioc, ioc->config_cb_idx);
375 ioc->name, __func__);
376 ioc->config_cmds.status = MPT2_CMD_NOT_USED;
383 ioc->config_cmds.status = MPT2_CMD_PENDING;
384 config_request = mpt2sas_base_get_msg_frame(ioc, smid);
385 ioc->config_cmds.smid = smid;
388 _config_display_some_debug(ioc, smid, "config_request", NULL);
390 init_completion(&ioc->config_cmds.done);
391 mpt2sas_base_put_smid_default(ioc, smid);
392 timeleft = wait_for_completion_timeout(&ioc->config_cmds.done,
394 if (!(ioc->config_cmds.status & MPT2_CMD_COMPLETE)) {
396 ioc->name, __func__);
400 if (ioc->config_cmds.smid == smid)
401 mpt2sas_base_free_smid(ioc, smid);
402 if ((ioc->shost_recovery) || (ioc->config_cmds.status &
403 MPT2_CMD_RESET) || ioc->pci_error_recovery)
410 if (ioc->config_cmds.status & MPT2_CMD_REPLY_VALID)
411 memcpy(mpi_reply, ioc->config_cmds.reply,
415 ioc->name, __func__, retry_count);
422 _config_free_config_dma_memory(ioc, &mem);
424 ioc->config_cmds.status = MPT2_CMD_NOT_USED;
425 mutex_unlock(&ioc->config_cmds.mutex);
428 mpt2sas_base_hard_reset_handler(ioc, CAN_SLEEP,
435 * @ioc: per adapter object
443 mpt2sas_config_get_manufacturing_pg0(struct MPT2SAS_ADAPTER *ioc,
455 mpt2sas_base_build_zero_len_sge(ioc, &mpi_request.PageBufferSGE);
456 r = _config_request(ioc, &mpi_request, mpi_reply,
462 r = _config_request(ioc, &mpi_request, mpi_reply,
471 * @ioc: per adapter object
479 mpt2sas_config_get_manufacturing_pg10(struct MPT2SAS_ADAPTER *ioc,
491 mpt2sas_base_build_zero_len_sge(ioc, &mpi_request.PageBufferSGE);
492 r = _config_request(ioc, &mpi_request, mpi_reply,
498 r = _config_request(ioc, &mpi_request, mpi_reply,
507 * @ioc: per adapter object
515 mpt2sas_config_get_bios_pg2(struct MPT2SAS_ADAPTER *ioc,
527 mpt2sas_base_build_zero_len_sge(ioc, &mpi_request.PageBufferSGE);
528 r = _config_request(ioc, &mpi_request, mpi_reply,
534 r = _config_request(ioc, &mpi_request, mpi_reply,
543 * @ioc: per adapter object
551 mpt2sas_config_get_bios_pg3(struct MPT2SAS_ADAPTER *ioc, Mpi2ConfigReply_t
563 mpt2sas_base_build_zero_len_sge(ioc, &mpi_request.PageBufferSGE);
564 r = _config_request(ioc, &mpi_request, mpi_reply,
570 r = _config_request(ioc, &mpi_request, mpi_reply,
579 * @ioc: per adapter object
587 mpt2sas_config_get_iounit_pg0(struct MPT2SAS_ADAPTER *ioc,
599 mpt2sas_base_build_zero_len_sge(ioc, &mpi_request.PageBufferSGE);
600 r = _config_request(ioc, &mpi_request, mpi_reply,
606 r = _config_request(ioc, &mpi_request, mpi_reply,
615 * @ioc: per adapter object
623 mpt2sas_config_get_iounit_pg1(struct MPT2SAS_ADAPTER *ioc,
635 mpt2sas_base_build_zero_len_sge(ioc, &mpi_request.PageBufferSGE);
636 r = _config_request(ioc, &mpi_request, mpi_reply,
642 r = _config_request(ioc, &mpi_request, mpi_reply,
651 * @ioc: per adapter object
659 mpt2sas_config_set_iounit_pg1(struct MPT2SAS_ADAPTER *ioc,
671 mpt2sas_base_build_zero_len_sge(ioc, &mpi_request.PageBufferSGE);
672 r = _config_request(ioc, &mpi_request, mpi_reply,
678 r = _config_request(ioc, &mpi_request, mpi_reply,
686 * mpt2sas_config_get_ioc_pg8 - obtain ioc page 8
687 * @ioc: per adapter object
695 mpt2sas_config_get_ioc_pg8(struct MPT2SAS_ADAPTER *ioc,
707 mpt2sas_base_build_zero_len_sge(ioc, &mpi_request.PageBufferSGE);
708 r = _config_request(ioc, &mpi_request, mpi_reply,
714 r = _config_request(ioc, &mpi_request, mpi_reply,
723 * @ioc: per adapter object
733 mpt2sas_config_get_sas_device_pg0(struct MPT2SAS_ADAPTER *ioc, Mpi2ConfigReply_t
746 mpt2sas_base_build_zero_len_sge(ioc, &mpi_request.PageBufferSGE);
747 r = _config_request(ioc, &mpi_request, mpi_reply,
754 r = _config_request(ioc, &mpi_request, mpi_reply,
763 * @ioc: per adapter object
773 mpt2sas_config_get_sas_device_pg1(struct MPT2SAS_ADAPTER *ioc, Mpi2ConfigReply_t
786 mpt2sas_base_build_zero_len_sge(ioc, &mpi_request.PageBufferSGE);
787 r = _config_request(ioc, &mpi_request, mpi_reply,
794 r = _config_request(ioc, &mpi_request, mpi_reply,
803 * @ioc: per adapter object
810 mpt2sas_config_get_number_hba_phys(struct MPT2SAS_ADAPTER *ioc, u8 *num_phys)
826 mpt2sas_base_build_zero_len_sge(ioc, &mpi_request.PageBufferSGE);
827 r = _config_request(ioc, &mpi_request, &mpi_reply,
833 r = _config_request(ioc, &mpi_request, &mpi_reply,
848 * @ioc: per adapter object
860 mpt2sas_config_get_sas_iounit_pg0(struct MPT2SAS_ADAPTER *ioc, Mpi2ConfigReply_t
873 mpt2sas_base_build_zero_len_sge(ioc, &mpi_request.PageBufferSGE);
874 r = _config_request(ioc, &mpi_request, mpi_reply,
880 r = _config_request(ioc, &mpi_request, mpi_reply,
888 * @ioc: per adapter object
900 mpt2sas_config_get_sas_iounit_pg1(struct MPT2SAS_ADAPTER *ioc, Mpi2ConfigReply_t
913 mpt2sas_base_build_zero_len_sge(ioc, &mpi_request.PageBufferSGE);
914 r = _config_request(ioc, &mpi_request, mpi_reply,
920 r = _config_request(ioc, &mpi_request, mpi_reply,
928 * @ioc: per adapter object
940 mpt2sas_config_set_sas_iounit_pg1(struct MPT2SAS_ADAPTER *ioc, Mpi2ConfigReply_t
953 mpt2sas_base_build_zero_len_sge(ioc, &mpi_request.PageBufferSGE);
954 r = _config_request(ioc, &mpi_request, mpi_reply,
960 _config_request(ioc, &mpi_request, mpi_reply,
963 r = _config_request(ioc, &mpi_request, mpi_reply,
971 * @ioc: per adapter object
981 mpt2sas_config_get_expander_pg0(struct MPT2SAS_ADAPTER *ioc, Mpi2ConfigReply_t
994 mpt2sas_base_build_zero_len_sge(ioc, &mpi_request.PageBufferSGE);
995 r = _config_request(ioc, &mpi_request, mpi_reply,
1002 r = _config_request(ioc, &mpi_request, mpi_reply,
1011 * @ioc: per adapter object
1021 mpt2sas_config_get_expander_pg1(struct MPT2SAS_ADAPTER *ioc, Mpi2ConfigReply_t
1035 mpt2sas_base_build_zero_len_sge(ioc, &mpi_request.PageBufferSGE);
1036 r = _config_request(ioc, &mpi_request, mpi_reply,
1045 r = _config_request(ioc, &mpi_request, mpi_reply,
1054 * @ioc: per adapter object
1064 mpt2sas_config_get_enclosure_pg0(struct MPT2SAS_ADAPTER *ioc, Mpi2ConfigReply_t
1077 mpt2sas_base_build_zero_len_sge(ioc, &mpi_request.PageBufferSGE);
1078 r = _config_request(ioc, &mpi_request, mpi_reply,
1085 r = _config_request(ioc, &mpi_request, mpi_reply,
1094 * @ioc: per adapter object
1103 mpt2sas_config_get_phy_pg0(struct MPT2SAS_ADAPTER *ioc, Mpi2ConfigReply_t
1116 mpt2sas_base_build_zero_len_sge(ioc, &mpi_request.PageBufferSGE);
1117 r = _config_request(ioc, &mpi_request, mpi_reply,
1125 r = _config_request(ioc, &mpi_request, mpi_reply,
1134 * @ioc: per adapter object
1143 mpt2sas_config_get_phy_pg1(struct MPT2SAS_ADAPTER *ioc, Mpi2ConfigReply_t
1156 mpt2sas_base_build_zero_len_sge(ioc, &mpi_request.PageBufferSGE);
1157 r = _config_request(ioc, &mpi_request, mpi_reply,
1165 r = _config_request(ioc, &mpi_request, mpi_reply,
1174 * @ioc: per adapter object
1184 mpt2sas_config_get_raid_volume_pg1(struct MPT2SAS_ADAPTER *ioc,
1197 mpt2sas_base_build_zero_len_sge(ioc, &mpi_request.PageBufferSGE);
1198 r = _config_request(ioc, &mpi_request, mpi_reply,
1205 r = _config_request(ioc, &mpi_request, mpi_reply,
1214 * @ioc: per adapter object
1222 mpt2sas_config_get_number_pds(struct MPT2SAS_ADAPTER *ioc, u16 handle,
1238 mpt2sas_base_build_zero_len_sge(ioc, &mpi_request.PageBufferSGE);
1239 r = _config_request(ioc, &mpi_request, &mpi_reply,
1247 r = _config_request(ioc, &mpi_request, &mpi_reply,
1263 * @ioc: per adapter object
1274 mpt2sas_config_get_raid_volume_pg0(struct MPT2SAS_ADAPTER *ioc,
1287 mpt2sas_base_build_zero_len_sge(ioc, &mpi_request.PageBufferSGE);
1288 r = _config_request(ioc, &mpi_request, mpi_reply,
1295 r = _config_request(ioc, &mpi_request, mpi_reply,
1303 * @ioc: per adapter object
1313 mpt2sas_config_get_phys_disk_pg0(struct MPT2SAS_ADAPTER *ioc, Mpi2ConfigReply_t
1326 mpt2sas_base_build_zero_len_sge(ioc, &mpi_request.PageBufferSGE);
1327 r = _config_request(ioc, &mpi_request, mpi_reply,
1334 r = _config_request(ioc, &mpi_request, mpi_reply,
1343 * @ioc: per adapter object
1351 mpt2sas_config_get_volume_handle(struct MPT2SAS_ADAPTER *ioc, u16 pd_handle,
1371 mpt2sas_base_build_zero_len_sge(ioc, &mpi_request.PageBufferSGE);
1372 r = _config_request(ioc, &mpi_request, &mpi_reply,
1388 r = _config_request(ioc, &mpi_request, &mpi_reply,
1432 * @ioc: per adapter object
1440 mpt2sas_config_get_volume_wwid(struct MPT2SAS_ADAPTER *ioc, u16 volume_handle,
1447 if (!(mpt2sas_config_get_raid_volume_pg1(ioc, &mpi_reply,