From 588ad2bc4699b38a7fdf5aa2949b262ca8fcdbda Mon Sep 17 00:00:00 2001 From: Komal Seelam Date: Mon, 1 Feb 2016 19:22:17 +0530 Subject: [PATCH] qcacld-3.0: Refactor BMI members from ol_softc Group BMI members and access bmi info from hif instead of dereferencing hif context. Change-Id: I9108ec1b719ec3e62dd19cc3341cbc1c868bf5de CRs-Fixed: 967765 --- core/bmi/src/bmi.c | 78 +++++++++++++++++++++++++------------------- core/bmi/src/bmi_1.c | 49 +++++++++++++++------------- core/bmi/src/bmi_2.c | 61 +++++++++++++++++++--------------- core/bmi/src/ol_fw.c | 20 +++++++----- 4 files changed, 117 insertions(+), 91 deletions(-) diff --git a/core/bmi/src/bmi.c b/core/bmi/src/bmi.c index 6753f01b1bf2..9c0a519f0b65 100644 --- a/core/bmi/src/bmi.c +++ b/core/bmi/src/bmi.c @@ -57,26 +57,30 @@ bmi_command_test(uint32_t command, uint32_t address, uint8_t *data, CDF_STATUS bmi_init(struct ol_softc *scn) { + struct bmi_info *info; + if (!scn) { BMI_ERR("Invalid scn Context"); bmi_assert(0); return CDF_STATUS_NOT_INITIALIZED; } - scn->bmi_done = false; - if (!scn->bmi_cmd_buff) { - scn->bmi_cmd_buff = cdf_os_mem_alloc_consistent(scn->cdf_dev, - MAX_BMI_CMDBUF_SZ, &scn->bmi_cmd_da, 0); - if (!scn->bmi_cmd_buff) { + info = hif_get_bmi_ctx(scn); + info->bmi_done = false; + + if (!info->bmi_cmd_buff) { + info->bmi_cmd_buff = cdf_os_mem_alloc_consistent(scn->cdf_dev, + MAX_BMI_CMDBUF_SZ, &info->bmi_cmd_da, 0); + if (!info->bmi_cmd_buff) { BMI_ERR("No Memory for BMI Command"); return CDF_STATUS_E_NOMEM; } } - if (!scn->bmi_rsp_buff) { - scn->bmi_rsp_buff = cdf_os_mem_alloc_consistent(scn->cdf_dev, - MAX_BMI_CMDBUF_SZ, &scn->bmi_rsp_da, 0); - if (!scn->bmi_rsp_buff) { + if (!info->bmi_rsp_buff) { + info->bmi_rsp_buff = cdf_os_mem_alloc_consistent(scn->cdf_dev, + MAX_BMI_CMDBUF_SZ, &info->bmi_rsp_da, 0); + if (!info->bmi_rsp_buff) { BMI_ERR("No Memory for BMI Response"); goto end; } @@ -84,25 +88,27 @@ CDF_STATUS bmi_init(struct ol_softc *scn) return CDF_STATUS_SUCCESS; end: cdf_os_mem_free_consistent(scn->cdf_dev, MAX_BMI_CMDBUF_SZ, - scn->bmi_cmd_buff, scn->bmi_cmd_da, 0); - scn->bmi_cmd_buff = NULL; + info->bmi_cmd_buff, info->bmi_cmd_da, 0); + info->bmi_cmd_buff = NULL; return CDF_STATUS_E_NOMEM; } void bmi_cleanup(struct ol_softc *scn) { - if (scn->bmi_cmd_buff) { + struct bmi_info *info = hif_get_bmi_ctx(scn); + + if (info->bmi_cmd_buff) { cdf_os_mem_free_consistent(scn->cdf_dev, MAX_BMI_CMDBUF_SZ, - scn->bmi_cmd_buff, scn->bmi_cmd_da, 0); - scn->bmi_cmd_buff = NULL; - scn->bmi_cmd_da = 0; + info->bmi_cmd_buff, info->bmi_cmd_da, 0); + info->bmi_cmd_buff = NULL; + info->bmi_cmd_da = 0; } - if (scn->bmi_rsp_buff) { + if (info->bmi_rsp_buff) { cdf_os_mem_free_consistent(scn->cdf_dev, MAX_BMI_CMDBUF_SZ, - scn->bmi_rsp_buff, scn->bmi_rsp_da, 0); - scn->bmi_rsp_buff = NULL; - scn->bmi_rsp_da = 0; + info->bmi_rsp_buff, info->bmi_rsp_da, 0); + info->bmi_rsp_buff = NULL; + info->bmi_rsp_da = 0; } } @@ -126,11 +132,12 @@ bmi_get_target_info(struct bmi_target_info *targ_info, struct ol_softc *scn) { int status = 0; - uint8_t *bmi_cmd_buff = scn->bmi_cmd_buff; - uint8_t *bmi_rsp_buff = scn->bmi_rsp_buff; + struct bmi_info *info = hif_get_bmi_ctx(scn); + uint8_t *bmi_cmd_buff = info->bmi_cmd_buff; + uint8_t *bmi_rsp_buff = info->bmi_rsp_buff; uint32_t cid, length; - if (scn->bmi_done) { + if (info->bmi_done) { BMI_ERR("BMI Phase is Already Done"); return CDF_STATUS_E_PERM; } @@ -208,14 +215,15 @@ bmi_read_soc_register(uint32_t address, uint32_t *param, struct ol_softc *scn) uint32_t cid; int status; uint32_t offset, param_len; - uint8_t *bmi_cmd_buff = scn->bmi_cmd_buff; - uint8_t *bmi_rsp_buff = scn->bmi_rsp_buff; + struct bmi_info *info = hif_get_bmi_ctx(scn); + uint8_t *bmi_cmd_buff = info->bmi_cmd_buff; + uint8_t *bmi_rsp_buff = info->bmi_rsp_buff; bmi_assert(BMI_COMMAND_FITS(sizeof(cid) + sizeof(address))); cdf_mem_set(bmi_cmd_buff, 0, sizeof(cid) + sizeof(address)); cdf_mem_set(bmi_rsp_buff, 0, sizeof(cid) + sizeof(address)); - if (scn->bmi_done) { + if (info->bmi_done) { BMI_DBG("Command disallowed"); return CDF_STATUS_E_PERM; } @@ -249,12 +257,13 @@ bmi_write_soc_register(uint32_t address, uint32_t param, struct ol_softc *scn) uint32_t cid; int status; uint32_t offset; - uint8_t *bmi_cmd_buff = scn->bmi_cmd_buff; + struct bmi_info *info = hif_get_bmi_ctx(scn); + uint8_t *bmi_cmd_buff = info->bmi_cmd_buff; uint32_t size = sizeof(cid) + sizeof(address) + sizeof(param); bmi_assert(BMI_COMMAND_FITS(size)); cdf_mem_set(bmi_cmd_buff, 0, size); - if (scn->bmi_done) { + if (info->bmi_done) { BMI_DBG("Command disallowed"); return CDF_STATUS_E_FAILURE; } @@ -290,12 +299,13 @@ bmilz_data(uint8_t *buffer, uint32_t length, struct ol_softc *scn) uint32_t offset; uint32_t remaining, txlen; const uint32_t header = sizeof(cid) + sizeof(length); - uint8_t *bmi_cmd_buff = scn->bmi_cmd_buff; + struct bmi_info *info = hif_get_bmi_ctx(scn); + uint8_t *bmi_cmd_buff = info->bmi_cmd_buff; bmi_assert(BMI_COMMAND_FITS(BMI_DATASZ_MAX + header)); cdf_mem_set(bmi_cmd_buff, 0, BMI_DATASZ_MAX + header); - if (scn->bmi_done) { + if (info->bmi_done) { BMI_ERR("Command disallowed"); return CDF_STATUS_E_PERM; } @@ -342,13 +352,14 @@ bmi_sign_stream_start(uint32_t address, const uint32_t header = sizeof(cid) + sizeof(address) + sizeof(length); uint8_t aligned_buf[BMI_DATASZ_MAX + 4]; uint8_t *src; - uint8_t *bmi_cmd_buff = scn->bmi_cmd_buff; + struct bmi_info *info = hif_get_bmi_ctx(scn); + uint8_t *bmi_cmd_buff = info->bmi_cmd_buff; uint32_t remaining, txlen; bmi_assert(BMI_COMMAND_FITS(BMI_DATASZ_MAX + header)); cdf_mem_set(bmi_cmd_buff, 0, BMI_DATASZ_MAX + header); - if (scn->bmi_done) { + if (info->bmi_done) { BMI_ERR("Command disallowed"); return CDF_STATUS_E_PERM; } @@ -402,12 +413,13 @@ bmilz_stream_start(uint32_t address, struct ol_softc *scn) uint32_t cid; int status; uint32_t offset; - uint8_t *bmi_cmd_buff = scn->bmi_cmd_buff; + struct bmi_info *info = hif_get_bmi_ctx(scn); + uint8_t *bmi_cmd_buff = info->bmi_cmd_buff; bmi_assert(BMI_COMMAND_FITS(sizeof(cid) + sizeof(address))); cdf_mem_set(bmi_cmd_buff, 0, sizeof(cid) + sizeof(address)); - if (scn->bmi_done) { + if (info->bmi_done) { BMI_DBG("Command disallowed"); return CDF_STATUS_E_PERM; } diff --git a/core/bmi/src/bmi_1.c b/core/bmi/src/bmi_1.c index e633030491aa..239f9d356b3c 100644 --- a/core/bmi/src/bmi_1.c +++ b/core/bmi/src/bmi_1.c @@ -37,16 +37,17 @@ bmi_read_memory(uint32_t address, int status; uint32_t offset; uint32_t remaining, rxlen; - uint8_t *bmi_cmd_buff = scn->bmi_cmd_buff; - uint8_t *bmi_rsp_buff = scn->bmi_rsp_buff; + struct bmi_info *info = hif_get_bmi_ctx(scn); + uint8_t *bmi_cmd_buff = info->bmi_cmd_buff; + uint8_t *bmi_rsp_buff = info->bmi_rsp_buff; uint32_t align; - if (scn->bmi_done) { + if (info->bmi_done) { BMI_DBG("command disallowed"); return CDF_STATUS_E_PERM; } - if (!scn->bmi_cmd_buff || !scn->bmi_rsp_buff) { + if (!info->bmi_cmd_buff || !info->bmi_rsp_buff) { BMI_ERR("BMI Initialization hasn't done"); return CDF_STATUS_NOT_INITIALIZED; } @@ -111,9 +112,10 @@ bmi_write_memory(uint32_t address, const uint32_t header = sizeof(cid) + sizeof(address) + sizeof(length); uint8_t aligned_buffer[BMI_DATASZ_MAX]; uint8_t *src; - uint8_t *bmi_cmd_buff = scn->bmi_cmd_buff; + struct bmi_info *info = hif_get_bmi_ctx(scn); + uint8_t *bmi_cmd_buff = info->bmi_cmd_buff; - if (scn->bmi_done) { + if (info->bmi_done) { BMI_ERR("Command disallowed"); return CDF_STATUS_E_PERM; } @@ -178,11 +180,12 @@ bmi_execute(uint32_t address, A_UINT32 *param, struct ol_softc *scn) int status; uint32_t offset; uint32_t param_len; - uint8_t *bmi_cmd_buff = scn->bmi_cmd_buff; - uint8_t *bmi_rsp_buff = scn->bmi_rsp_buff; + struct bmi_info *info = hif_get_bmi_ctx(scn); + uint8_t *bmi_cmd_buff = info->bmi_cmd_buff; + uint8_t *bmi_rsp_buff = info->bmi_rsp_buff; uint32_t size = sizeof(cid) + sizeof(address) + sizeof(param); - if (scn->bmi_done) { + if (info->bmi_done) { BMI_ERR("Command disallowed"); return CDF_STATUS_E_PERM; } @@ -272,6 +275,7 @@ CDF_STATUS bmi_done_local(struct ol_softc *scn) { int status; uint32_t cid; + struct bmi_info *info; if (!scn) { BMI_ERR("Invalid scn context"); @@ -279,43 +283,44 @@ CDF_STATUS bmi_done_local(struct ol_softc *scn) return CDF_STATUS_NOT_INITIALIZED; } - if (scn->bmi_done) { + info = hif_get_bmi_ctx(scn); + if (info->bmi_done) { BMI_DBG("bmi_done_local skipped"); return CDF_STATUS_E_PERM; } BMI_DBG("BMI Done: Enter (device: 0x%p)", scn); - scn->bmi_done = true; + info->bmi_done = true; cid = BMI_DONE; - if (!scn->bmi_cmd_buff) { + if (!info->bmi_cmd_buff) { BMI_ERR("Invalid scn BMICmdBuff"); bmi_assert(0); return CDF_STATUS_NOT_INITIALIZED; } - cdf_mem_copy(scn->bmi_cmd_buff, &cid, sizeof(cid)); + cdf_mem_copy(info->bmi_cmd_buff, &cid, sizeof(cid)); - status = hif_exchange_bmi_msg(scn, scn->bmi_cmd_buff, + status = hif_exchange_bmi_msg(scn, info->bmi_cmd_buff, sizeof(cid), NULL, NULL, 0); if (status) { BMI_ERR("Failed to write to the device; status:%d", status); return CDF_STATUS_E_FAILURE; } - if (scn->bmi_cmd_buff) { + if (info->bmi_cmd_buff) { cdf_os_mem_free_consistent(scn->cdf_dev, MAX_BMI_CMDBUF_SZ, - scn->bmi_cmd_buff, scn->bmi_cmd_da, 0); - scn->bmi_cmd_buff = NULL; - scn->bmi_cmd_da = 0; + info->bmi_cmd_buff, info->bmi_cmd_da, 0); + info->bmi_cmd_buff = NULL; + info->bmi_cmd_da = 0; } - if (scn->bmi_rsp_buff) { + if (info->bmi_rsp_buff) { cdf_os_mem_free_consistent(scn->cdf_dev, MAX_BMI_CMDBUF_SZ, - scn->bmi_rsp_buff, scn->bmi_rsp_da, 0); - scn->bmi_rsp_buff = NULL; - scn->bmi_rsp_da = 0; + info->bmi_rsp_buff, info->bmi_rsp_da, 0); + info->bmi_rsp_buff = NULL; + info->bmi_rsp_da = 0; } return CDF_STATUS_SUCCESS; diff --git a/core/bmi/src/bmi_2.c b/core/bmi/src/bmi_2.c index 2391222d3801..b37da7eb408a 100644 --- a/core/bmi/src/bmi_2.c +++ b/core/bmi/src/bmi_2.c @@ -39,10 +39,11 @@ bmi_no_command(struct ol_softc *scn) int status; uint32_t length; uint8_t ret = 0; - uint8_t *bmi_cmd_buff = scn->bmi_cmd_buff; - uint8_t *bmi_rsp_buff = scn->bmi_rsp_buff; + struct bmi_info *info = hif_get_bmi_ctx(scn); + uint8_t *bmi_cmd_buff = info->bmi_cmd_buff; + uint8_t *bmi_rsp_buff = info->bmi_rsp_buff; - if (scn->bmi_done) { + if (info->bmi_done) { BMI_ERR("Command disallowed: BMI DONE ALREADY"); return CDF_STATUS_E_PERM; } @@ -79,10 +80,11 @@ bmi_done_local(struct ol_softc *scn) int status; uint32_t length; uint8_t ret = 0; - uint8_t *bmi_cmd_buff = scn->bmi_cmd_buff; - uint8_t *bmi_rsp_buff = scn->bmi_rsp_buff; + struct bmi_info *info = hif_get_bmi_ctx(scn); + uint8_t *bmi_cmd_buff = info->bmi_cmd_buff; + uint8_t *bmi_rsp_buff = info->bmi_rsp_buff; - if (scn->bmi_done) { + if (info->bmi_done) { BMI_ERR("Command disallowed"); return CDF_STATUS_E_PERM; } @@ -110,18 +112,18 @@ bmi_done_local(struct ol_softc *scn) return CDF_STATUS_E_FAILURE; } - if (scn->bmi_cmd_buff) { + if (info->bmi_cmd_buff) { cdf_os_mem_free_consistent(scn->cdf_dev, MAX_BMI_CMDBUF_SZ, - scn->bmi_cmd_buff, scn->bmi_cmd_da, 0); - scn->bmi_cmd_buff = NULL; - scn->bmi_cmd_da = 0; + info->bmi_cmd_buff, info->bmi_cmd_da, 0); + info->bmi_cmd_buff = NULL; + info->bmi_cmd_da = 0; } - if (scn->bmi_rsp_buff) { + if (info->bmi_rsp_buff) { cdf_os_mem_free_consistent(scn->cdf_dev, MAX_BMI_CMDBUF_SZ, - scn->bmi_rsp_buff, scn->bmi_rsp_da, 0); - scn->bmi_rsp_buff = NULL; - scn->bmi_rsp_da = 0; + info->bmi_rsp_buff, info->bmi_rsp_da, 0); + info->bmi_rsp_buff = NULL; + info->bmi_rsp_da = 0; } return CDF_STATUS_SUCCESS; @@ -142,10 +144,11 @@ bmi_write_memory(uint32_t address, const uint32_t header = sizeof(cid) + sizeof(address) + sizeof(length); uint8_t aligned_buffer[BMI_DATASZ_MAX]; uint8_t *src; - uint8_t *bmi_cmd_buff = scn->bmi_cmd_buff; - uint8_t *bmi_rsp_buff = scn->bmi_rsp_buff; + struct bmi_info *info = hif_get_bmi_ctx(scn); + uint8_t *bmi_cmd_buff = info->bmi_cmd_buff; + uint8_t *bmi_rsp_buff = info->bmi_rsp_buff; - if (scn->bmi_done) { + if (info->bmi_done) { BMI_ERR("Command disallowed"); return CDF_STATUS_E_PERM; } @@ -211,12 +214,13 @@ bmi_read_memory(uint32_t address, uint8_t *buffer, uint8_t ret = 0; uint32_t offset; uint32_t remaining, rxlen, rsp_len, total_len; - uint8_t *bmi_cmd_buff = scn->bmi_cmd_buff; + struct bmi_info *info = hif_get_bmi_ctx(scn); + uint8_t *bmi_cmd_buff = info->bmi_cmd_buff; /* note we reuse the same buffer to receive on */ - uint8_t *bmi_rsp_buff = scn->bmi_rsp_buff; + uint8_t *bmi_rsp_buff = info->bmi_rsp_buff; uint32_t size = sizeof(cid) + sizeof(address) + sizeof(length); - if (scn->bmi_done) { + if (info->bmi_done) { BMI_ERR("Command disallowed"); return CDF_STATUS_E_PERM; } @@ -282,10 +286,11 @@ bmi_execute(uint32_t address, uint32_t *param, int status; uint32_t length; uint8_t ret = 0; - uint8_t *bmi_cmd_buff = scn->bmi_cmd_buff; - uint8_t *bmi_rsp_buff = scn->bmi_rsp_buff; + struct bmi_info *info = hif_get_bmi_ctx(scn); + uint8_t *bmi_cmd_buff = info->bmi_cmd_buff; + uint8_t *bmi_rsp_buff = info->bmi_rsp_buff; - if (scn->bmi_done) { + if (info->bmi_done) { BMI_ERR("Command disallowed"); return CDF_STATUS_E_PERM; } @@ -326,11 +331,12 @@ bmi_load_image(dma_addr_t address, uint32_t offset; uint32_t length; uint8_t ret = 0; - uint8_t *bmi_cmd_buff = scn->bmi_cmd_buff; - uint8_t *bmi_rsp_buff = scn->bmi_rsp_buff; + struct bmi_info *info = hif_get_bmi_ctx(scn); + uint8_t *bmi_cmd_buff = info->bmi_cmd_buff; + uint8_t *bmi_rsp_buff = info->bmi_rsp_buff; uint32_t addr_h, addr_l; - if (scn->bmi_done) { + if (info->bmi_done) { BMI_ERR("Command disallowed"); return CDF_STATUS_E_PERM; } @@ -383,6 +389,7 @@ static CDF_STATUS bmi_enable(struct ol_softc *scn) struct image_desc_info image_desc_info; CDF_STATUS status; struct hif_target_info *tgt_info; + struct bmi_info *info = hif_get_bmi_ctx(scn); if (!scn) { BMI_ERR("Invalid scn context"); @@ -392,7 +399,7 @@ static CDF_STATUS bmi_enable(struct ol_softc *scn) tgt_info = hif_get_target_info_handle(scn); - if (scn->bmi_cmd_buff == NULL || scn->bmi_rsp_buff == NULL) { + if (info->bmi_cmd_buff == NULL || info->bmi_rsp_buff == NULL) { BMI_ERR("bmi_open failed!"); return CDF_STATUS_NOT_INITIALIZED; } diff --git a/core/bmi/src/ol_fw.c b/core/bmi/src/ol_fw.c index 93d92a0c27d9..d8b5a709b1bc 100644 --- a/core/bmi/src/ol_fw.c +++ b/core/bmi/src/ol_fw.c @@ -148,6 +148,7 @@ static int __ol_transfer_bin_file(struct ol_softc *scn, ATH_BIN_FILE file, #endif struct hif_target_info *tgt_info = hif_get_target_info_handle(scn); uint32_t target_type = tgt_info->target_type; + struct bmi_info *bmi_ctx = hif_get_bmi_ctx(scn); switch (file) { default: @@ -155,7 +156,7 @@ static int __ol_transfer_bin_file(struct ol_softc *scn, ATH_BIN_FILE file, return -1; case ATH_OTP_FILE: #if defined(CONFIG_CNSS) - filename = scn->fw_files.otp_data; + filename = bmi_ctx->fw_files.otp_data; #else filename = QCA_OTP_FILE; #endif @@ -166,7 +167,7 @@ static int __ol_transfer_bin_file(struct ol_softc *scn, ATH_BIN_FILE file, case ATH_FIRMWARE_FILE: if (WLAN_IS_EPPING_ENABLED(cds_get_conparam())) { #if defined(CONFIG_CNSS) - filename = scn->fw_files.epping_file; + filename = bmi_ctx->fw_files.epping_file; #else filename = QCA_FIRMWARE_EPPING_FILE; #endif @@ -177,7 +178,7 @@ static int __ol_transfer_bin_file(struct ol_softc *scn, ATH_BIN_FILE file, #ifdef QCA_WIFI_FTM if (cds_get_conparam() == CDF_GLOBAL_FTM_MODE) { #if defined(CONFIG_CNSS) - filename = scn->fw_files.utf_file; + filename = bmi_ctx->fw_files.utf_file; #else filename = QCA_UTF_FIRMWARE_FILE; #endif @@ -190,7 +191,7 @@ static int __ol_transfer_bin_file(struct ol_softc *scn, ATH_BIN_FILE file, } #endif #if defined(CONFIG_CNSS) - filename = scn->fw_files.image_file; + filename = bmi_ctx->fw_files.image_file; #else filename = QCA_FIRMWARE_FILE; #endif @@ -205,7 +206,7 @@ static int __ol_transfer_bin_file(struct ol_softc *scn, ATH_BIN_FILE file, #ifdef QCA_WIFI_FTM if (cds_get_conparam() == CDF_GLOBAL_FTM_MODE) { #if defined(CONFIG_CNSS) - filename = scn->fw_files.utf_board_data; + filename = bmi_ctx->fw_files.utf_board_data; #else filename = QCA_BOARD_DATA_FILE; #endif @@ -218,7 +219,7 @@ static int __ol_transfer_bin_file(struct ol_softc *scn, ATH_BIN_FILE file, } #endif /* QCA_WIFI_FTM */ #if defined(CONFIG_CNSS) - filename = scn->fw_files.board_data; + filename = bmi_ctx->fw_files.board_data; #else filename = QCA_BOARD_DATA_FILE; #endif @@ -256,8 +257,8 @@ static int __ol_transfer_bin_file(struct ol_softc *scn, ATH_BIN_FILE file, #if defined(QCA_WIFI_FTM) && defined(CONFIG_CNSS) /* Try default board data file if FTM specific * board data file is not present. */ - if (filename == scn->fw_files.utf_board_data) { - filename = scn->fw_files.board_data; + if (filename == bmi_ctx->fw_files.utf_board_data) { + filename = bmi_ctx->fw_files.board_data; BMI_INFO("%s: Trying to load default %s", __func__, filename); if (request_firmware(&fw_entry, filename, @@ -1211,9 +1212,10 @@ CDF_STATUS ol_download_firmware(struct ol_softc *scn) struct hif_config_info *ini_cfg = hif_get_ini_handle(scn); uint32_t target_type = tgt_info->target_type; uint32_t target_version = tgt_info->target_version; + struct bmi_info *bmi_ctx = hif_get_bmi_ctx(scn); #ifdef CONFIG_CNSS - if (0 != cnss_get_fw_files_for_target(&scn->fw_files, + if (0 != cnss_get_fw_files_for_target(&bmi_ctx->fw_files, target_type, target_version)) { BMI_ERR("%s: No FW files from CNSS driver", __func__);