Lines Matching refs:priv

84 int wlfw_msa_mem_info_send_sync_msg(struct icnss_priv *priv)  in wlfw_msa_mem_info_send_sync_msg()  argument
93 if (!priv) in wlfw_msa_mem_info_send_sync_msg()
96 icnss_pr_dbg("Sending MSA mem info, state: 0x%lx\n", priv->state); in wlfw_msa_mem_info_send_sync_msg()
108 req->msa_addr = priv->msa_pa; in wlfw_msa_mem_info_send_sync_msg()
109 req->size = priv->msa_mem_size; in wlfw_msa_mem_info_send_sync_msg()
111 priv->stats.msa_info_req++; in wlfw_msa_mem_info_send_sync_msg()
113 ret = qmi_txn_init(&priv->qmi, &txn, in wlfw_msa_mem_info_send_sync_msg()
122 ret = qmi_send_request(&priv->qmi, NULL, &txn, in wlfw_msa_mem_info_send_sync_msg()
132 ret = qmi_txn_wait(&txn, priv->ctrl_params.qmi_timeout); in wlfw_msa_mem_info_send_sync_msg()
156 max_mapped_addr = priv->msa_pa + priv->msa_mem_size; in wlfw_msa_mem_info_send_sync_msg()
157 priv->stats.msa_info_resp++; in wlfw_msa_mem_info_send_sync_msg()
158 priv->nr_mem_region = resp->mem_region_info_len; in wlfw_msa_mem_info_send_sync_msg()
161 if (resp->mem_region_info[i].size > priv->msa_mem_size || in wlfw_msa_mem_info_send_sync_msg()
163 resp->mem_region_info[i].region_addr < priv->msa_pa || in wlfw_msa_mem_info_send_sync_msg()
173 priv->mem_region[i].reg_addr = in wlfw_msa_mem_info_send_sync_msg()
175 priv->mem_region[i].size = in wlfw_msa_mem_info_send_sync_msg()
177 priv->mem_region[i].secure_flag = in wlfw_msa_mem_info_send_sync_msg()
180 i, priv->mem_region[i].reg_addr, in wlfw_msa_mem_info_send_sync_msg()
181 priv->mem_region[i].size, in wlfw_msa_mem_info_send_sync_msg()
182 priv->mem_region[i].secure_flag); in wlfw_msa_mem_info_send_sync_msg()
190 memset(&priv->mem_region[0], 0, sizeof(priv->mem_region[0]) * i); in wlfw_msa_mem_info_send_sync_msg()
194 priv->stats.msa_info_err++; in wlfw_msa_mem_info_send_sync_msg()
198 int wlfw_msa_ready_send_sync_msg(struct icnss_priv *priv) in wlfw_msa_ready_send_sync_msg() argument
205 if (!priv) in wlfw_msa_ready_send_sync_msg()
209 priv->state); in wlfw_msa_ready_send_sync_msg()
221 priv->stats.msa_ready_req++; in wlfw_msa_ready_send_sync_msg()
223 ret = qmi_txn_init(&priv->qmi, &txn, in wlfw_msa_ready_send_sync_msg()
232 ret = qmi_send_request(&priv->qmi, NULL, &txn, in wlfw_msa_ready_send_sync_msg()
242 ret = qmi_txn_wait(&txn, priv->ctrl_params.qmi_timeout); in wlfw_msa_ready_send_sync_msg()
256 priv->stats.msa_ready_resp++; in wlfw_msa_ready_send_sync_msg()
265 priv->stats.msa_ready_err++; in wlfw_msa_ready_send_sync_msg()
269 int wlfw_device_info_send_msg(struct icnss_priv *priv) in wlfw_device_info_send_msg() argument
276 if (!priv) in wlfw_device_info_send_msg()
280 priv->state); in wlfw_device_info_send_msg()
292 priv->stats.device_info_req++; in wlfw_device_info_send_msg()
294 ret = qmi_txn_init(&priv->qmi, &txn, in wlfw_device_info_send_msg()
303 ret = qmi_send_request(&priv->qmi, NULL, &txn, in wlfw_device_info_send_msg()
313 ret = qmi_txn_wait(&txn, priv->ctrl_params.qmi_timeout); in wlfw_device_info_send_msg()
327 priv->stats.device_info_resp++; in wlfw_device_info_send_msg()
330 priv->mem_base_pa = resp->bar_addr; in wlfw_device_info_send_msg()
333 priv->mem_base_size = resp->bar_size; in wlfw_device_info_send_msg()
335 if (!priv->mem_base_pa) { in wlfw_device_info_send_msg()
341 if (priv->mem_base_size < DEVICE_BAR_SIZE) { in wlfw_device_info_send_msg()
344 priv->mem_base_size); in wlfw_device_info_send_msg()
349 priv->mhi_state_info_pa = resp->mhi_state_info_addr; in wlfw_device_info_send_msg()
352 priv->mhi_state_info_size = resp->mhi_state_info_size; in wlfw_device_info_send_msg()
354 if (!priv->mhi_state_info_pa) in wlfw_device_info_send_msg()
364 priv->stats.device_info_err++; in wlfw_device_info_send_msg()
368 int wlfw_power_save_send_msg(struct icnss_priv *priv, in wlfw_power_save_send_msg() argument
375 if (!priv) in wlfw_power_save_send_msg()
378 if (test_bit(ICNSS_FW_DOWN, &priv->state)) in wlfw_power_save_send_msg()
381 if (test_bit(ICNSS_PD_RESTART, &priv->state) || in wlfw_power_save_send_msg()
382 !test_bit(ICNSS_MODE_ON, &priv->state)) in wlfw_power_save_send_msg()
386 mode, priv->state); in wlfw_power_save_send_msg()
396 priv->stats.exit_power_save_req++; in wlfw_power_save_send_msg()
398 priv->stats.enter_power_save_req++; in wlfw_power_save_send_msg()
400 ret = qmi_txn_init(&priv->qmi, &txn, in wlfw_power_save_send_msg()
408 ret = qmi_send_request(&priv->qmi, NULL, &txn, in wlfw_power_save_send_msg()
422 priv->stats.exit_power_save_resp++; in wlfw_power_save_send_msg()
424 priv->stats.enter_power_save_resp++; in wlfw_power_save_send_msg()
433 priv->stats.exit_power_save_err++; in wlfw_power_save_send_msg()
435 priv->stats.enter_power_save_err++; in wlfw_power_save_send_msg()
439 int wlfw_send_soc_wake_msg(struct icnss_priv *priv, in wlfw_send_soc_wake_msg() argument
447 if (!priv) in wlfw_send_soc_wake_msg()
450 if (test_bit(ICNSS_FW_DOWN, &priv->state)) in wlfw_send_soc_wake_msg()
468 priv->stats.soc_wake_req++; in wlfw_send_soc_wake_msg()
470 ret = qmi_txn_init(&priv->qmi, &txn, in wlfw_send_soc_wake_msg()
479 ret = qmi_send_request(&priv->qmi, NULL, &txn, in wlfw_send_soc_wake_msg()
489 ret = qmi_txn_wait(&txn, priv->ctrl_params.qmi_timeout); in wlfw_send_soc_wake_msg()
502 priv->stats.soc_wake_resp++; in wlfw_send_soc_wake_msg()
511 priv->stats.soc_wake_err++; in wlfw_send_soc_wake_msg()
515 int wlfw_ind_register_send_sync_msg(struct icnss_priv *priv) in wlfw_ind_register_send_sync_msg() argument
522 if (!priv) in wlfw_ind_register_send_sync_msg()
526 priv->state); in wlfw_ind_register_send_sync_msg()
545 if (priv->device_id == ADRASTEA_DEVICE_ID) { in wlfw_ind_register_send_sync_msg()
549 &priv->ctrl_params.quirks)) { in wlfw_ind_register_send_sync_msg()
553 } else if (priv->device_id == WCN6750_DEVICE_ID || in wlfw_ind_register_send_sync_msg()
554 priv->device_id == WCN6450_DEVICE_ID) { in wlfw_ind_register_send_sync_msg()
571 priv->stats.ind_register_req++; in wlfw_ind_register_send_sync_msg()
573 ret = qmi_txn_init(&priv->qmi, &txn, in wlfw_ind_register_send_sync_msg()
582 ret = qmi_send_request(&priv->qmi, NULL, &txn, in wlfw_ind_register_send_sync_msg()
592 ret = qmi_txn_wait(&txn, priv->ctrl_params.qmi_timeout); in wlfw_ind_register_send_sync_msg()
606 priv->stats.ind_register_resp++; in wlfw_ind_register_send_sync_msg()
621 priv->stats.ind_register_err++; in wlfw_ind_register_send_sync_msg()
628 int wlfw_cal_report_req(struct icnss_priv *priv) in wlfw_cal_report_req() argument
635 if (!priv) in wlfw_cal_report_req()
638 if (test_bit(ICNSS_FW_DOWN, &priv->state)) in wlfw_cal_report_req()
642 priv->state); in wlfw_cal_report_req()
655 ret = qmi_txn_init(&priv->qmi, &txn, in wlfw_cal_report_req()
663 ret = qmi_send_request(&priv->qmi, NULL, &txn, in wlfw_cal_report_req()
674 priv->ctrl_params.qmi_timeout); in wlfw_cal_report_req()
696 int wlfw_cap_send_sync_msg(struct icnss_priv *priv) in wlfw_cap_send_sync_msg() argument
703 if (!priv) in wlfw_cap_send_sync_msg()
707 priv->state); in wlfw_cap_send_sync_msg()
719 priv->stats.cap_req++; in wlfw_cap_send_sync_msg()
721 ret = qmi_txn_init(&priv->qmi, &txn, wlfw_cap_resp_msg_v01_ei, resp); in wlfw_cap_send_sync_msg()
728 ret = qmi_send_request(&priv->qmi, NULL, &txn, in wlfw_cap_send_sync_msg()
739 priv->ctrl_params.qmi_timeout + in wlfw_cap_send_sync_msg()
740 msecs_to_jiffies(priv->wlan_en_delay_ms)); in wlfw_cap_send_sync_msg()
757 priv->stats.cap_resp++; in wlfw_cap_send_sync_msg()
760 priv->chip_info.chip_id = resp->chip_info.chip_id; in wlfw_cap_send_sync_msg()
761 priv->chip_info.chip_family = resp->chip_info.chip_family; in wlfw_cap_send_sync_msg()
764 priv->board_id = resp->board_info.board_id; in wlfw_cap_send_sync_msg()
766 priv->board_id = 0xFF; in wlfw_cap_send_sync_msg()
768 priv->soc_id = resp->soc_info.soc_id; in wlfw_cap_send_sync_msg()
770 priv->fw_version_info.fw_version = in wlfw_cap_send_sync_msg()
772 strlcpy(priv->fw_version_info.fw_build_timestamp, in wlfw_cap_send_sync_msg()
779 priv->dev_mem_info[i].start = in wlfw_cap_send_sync_msg()
781 priv->dev_mem_info[i].size = in wlfw_cap_send_sync_msg()
784 i, priv->dev_mem_info[i].start, in wlfw_cap_send_sync_msg()
785 priv->dev_mem_info[i].size); in wlfw_cap_send_sync_msg()
790 priv->cpr_info.voltage = resp->voltage_mv; in wlfw_cap_send_sync_msg()
792 priv->cpr_info.voltage); in wlfw_cap_send_sync_msg()
793 icnss_update_cpr_info(priv); in wlfw_cap_send_sync_msg()
797 strlcpy(priv->fw_build_id, resp->fw_build_id, in wlfw_cap_send_sync_msg()
801 priv->rd_card_chain_cap = (enum icnss_rd_card_chain_cap)resp->rd_card_chain_cap; in wlfw_cap_send_sync_msg()
803 priv->is_chain1_supported = false; in wlfw_cap_send_sync_msg()
807 priv->foundry_name = resp->foundry_name[0]; in wlfw_cap_send_sync_msg()
808 else if (resp->chip_info_valid && priv->chip_info.chip_id == UMC_CHIP_ID) in wlfw_cap_send_sync_msg()
809 priv->foundry_name = 'u'; in wlfw_cap_send_sync_msg()
812 priv->phy_he_channel_width_cap = in wlfw_cap_send_sync_msg()
816 priv->phy_qam_cap = (enum icnss_phy_qam_cap)resp->phy_qam_cap; in wlfw_cap_send_sync_msg()
819 priv->serial_id = resp->serial_id; in wlfw_cap_send_sync_msg()
826 priv->chip_info.chip_id, priv->chip_info.chip_family, in wlfw_cap_send_sync_msg()
827 priv->board_id, priv->soc_id); in wlfw_cap_send_sync_msg()
830 priv->fw_version_info.fw_version, in wlfw_cap_send_sync_msg()
831 priv->fw_version_info.fw_build_timestamp, in wlfw_cap_send_sync_msg()
832 priv->fw_build_id); in wlfw_cap_send_sync_msg()
835 priv->rd_card_chain_cap, priv->phy_he_channel_width_cap, in wlfw_cap_send_sync_msg()
836 priv->phy_qam_cap); in wlfw_cap_send_sync_msg()
845 priv->stats.cap_err++; in wlfw_cap_send_sync_msg()
849 int icnss_qmi_get_dms_mac(struct icnss_priv *priv) in icnss_qmi_get_dms_mac() argument
856 if (!test_bit(ICNSS_QMI_DMS_CONNECTED, &priv->state)) { in icnss_qmi_get_dms_mac()
863 ret = qmi_txn_init(&priv->qmi_dms, &txn, in icnss_qmi_get_dms_mac()
871 ret = qmi_send_request(&priv->qmi_dms, NULL, &txn, in icnss_qmi_get_dms_mac()
881 ret = qmi_txn_wait(&txn, priv->ctrl_params.qmi_timeout); in icnss_qmi_get_dms_mac()
891 priv->dms.nv_mac_not_prov = 1; in icnss_qmi_get_dms_mac()
902 priv->dms.mac_valid = false; in icnss_qmi_get_dms_mac()
905 priv->dms.mac_valid = true; in icnss_qmi_get_dms_mac()
906 memcpy(priv->dms.mac, resp.mac_address, QMI_WLFW_MAC_ADDR_SIZE_V01); in icnss_qmi_get_dms_mac()
907 icnss_pr_info("Received DMS MAC: [%pM]\n", priv->dms.mac); in icnss_qmi_get_dms_mac()
912 int icnss_wlfw_wlan_mac_req_send_sync(struct icnss_priv *priv, in icnss_wlfw_wlan_mac_req_send_sync() argument
920 if (!priv || !mac || mac_len != QMI_WLFW_MAC_ADDR_SIZE_V01) in icnss_wlfw_wlan_mac_req_send_sync()
923 ret = qmi_txn_init(&priv->qmi, &txn, in icnss_wlfw_wlan_mac_req_send_sync()
933 mac, priv->state); in icnss_wlfw_wlan_mac_req_send_sync()
937 ret = qmi_send_request(&priv->qmi, NULL, &txn, in icnss_wlfw_wlan_mac_req_send_sync()
948 ret = qmi_txn_wait(&txn, priv->ctrl_params.qmi_timeout); in icnss_wlfw_wlan_mac_req_send_sync()
965 static int icnss_dms_connect_to_server(struct icnss_priv *priv, in icnss_dms_connect_to_server() argument
968 struct qmi_handle *qmi_dms = &priv->qmi_dms; in icnss_dms_connect_to_server()
984 set_bit(ICNSS_QMI_DMS_CONNECTED, &priv->state); in icnss_dms_connect_to_server()
986 priv->state); in icnss_dms_connect_to_server()
994 struct icnss_priv *priv = in dms_new_server() local
1000 return icnss_dms_connect_to_server(priv, service->node, in dms_new_server()
1007 struct icnss_priv *priv = in dms_del_server() local
1010 clear_bit(ICNSS_QMI_DMS_CONNECTED, &priv->state); in dms_del_server()
1012 priv->state); in dms_del_server()
1020 int icnss_dms_init(struct icnss_priv *priv) in icnss_dms_init() argument
1024 ret = qmi_handle_init(&priv->qmi_dms, DMS_QMI_MAX_MSG_LEN, in icnss_dms_init()
1031 ret = qmi_add_lookup(&priv->qmi_dms, DMS_SERVICE_ID_V01, in icnss_dms_init()
1039 void icnss_dms_deinit(struct icnss_priv *priv) in icnss_dms_deinit() argument
1041 qmi_handle_release(&priv->qmi_dms); in icnss_dms_deinit()
1044 static int icnss_get_bdf_file_name(struct icnss_priv *priv, in icnss_get_bdf_file_name() argument
1054 if (priv->board_id == 0xFF) in icnss_get_bdf_file_name()
1056 else if (priv->board_id < 0xFF) in icnss_get_bdf_file_name()
1059 priv->board_id); in icnss_get_bdf_file_name()
1063 priv->board_id >> 8 & 0xFF, in icnss_get_bdf_file_name()
1064 priv->board_id & 0xFF); in icnss_get_bdf_file_name()
1067 if (priv->board_id == 0xFF) in icnss_get_bdf_file_name()
1069 else if (priv->board_id >= WLAN_BOARD_ID_INDEX) in icnss_get_bdf_file_name()
1072 priv->board_id); in icnss_get_bdf_file_name()
1076 priv->board_id); in icnss_get_bdf_file_name()
1077 if (priv->foundry_name) { in icnss_get_bdf_file_name()
1082 foundry_specific_filename[BDWLAN_SIZE] = priv->foundry_name; in icnss_get_bdf_file_name()
1092 priv->ctrl_params.bdf_type); in icnss_get_bdf_file_name()
1098 icnss_add_fw_prefix_name(priv, filename, filename_tmp); in icnss_get_bdf_file_name()
1117 int icnss_wlfw_bdf_dnld_send_sync(struct icnss_priv *priv, u32 bdf_type) in icnss_wlfw_bdf_dnld_send_sync() argument
1129 icnss_bdf_type_to_str(bdf_type), priv->state, bdf_type); in icnss_wlfw_bdf_dnld_send_sync()
1141 ret = icnss_get_bdf_file_name(priv, bdf_type, in icnss_wlfw_bdf_dnld_send_sync()
1146 ret = firmware_request_nowarn(&fw_entry, filename, &priv->pdev->dev); in icnss_wlfw_bdf_dnld_send_sync()
1162 req->file_id = priv->board_id; in icnss_wlfw_bdf_dnld_send_sync()
1180 ret = qmi_txn_init(&priv->qmi, &txn, in icnss_wlfw_bdf_dnld_send_sync()
1189 (&priv->qmi, NULL, &txn, in icnss_wlfw_bdf_dnld_send_sync()
1200 ret = qmi_txn_wait(&txn, priv->ctrl_params.qmi_timeout); in icnss_wlfw_bdf_dnld_send_sync()
1236 int icnss_wlfw_qdss_data_send_sync(struct icnss_priv *priv, char *file_name, in icnss_wlfw_qdss_data_send_sync() argument
1267 ret = qmi_txn_init(&priv->qmi, &txn, in icnss_wlfw_qdss_data_send_sync()
1277 (&priv->qmi, NULL, &txn, in icnss_wlfw_qdss_data_send_sync()
1289 ret = qmi_txn_wait(&txn, priv->ctrl_params.qmi_timeout); in icnss_wlfw_qdss_data_send_sync()
1359 int icnss_wlfw_qdss_dnld_send_sync(struct icnss_priv *priv) in icnss_wlfw_qdss_dnld_send_sync() argument
1371 priv->state); in icnss_wlfw_qdss_dnld_send_sync()
1383 icnss_add_fw_prefix_name(priv, filename, QDSS_TRACE_CONFIG_FILE); in icnss_wlfw_qdss_dnld_send_sync()
1385 &priv->pdev->dev); in icnss_wlfw_qdss_dnld_send_sync()
1415 (&priv->qmi, &txn, in icnss_wlfw_qdss_dnld_send_sync()
1425 (&priv->qmi, NULL, &txn, in icnss_wlfw_qdss_dnld_send_sync()
1436 ret = qmi_txn_wait(&txn, priv->ctrl_params.qmi_timeout); in icnss_wlfw_qdss_dnld_send_sync()
1469 int wlfw_wlan_mode_send_sync_msg(struct icnss_priv *priv, in wlfw_wlan_mode_send_sync_msg() argument
1477 if (!priv) in wlfw_wlan_mode_send_sync_msg()
1483 if (test_bit(ICNSS_PD_RESTART, &priv->state) && in wlfw_wlan_mode_send_sync_msg()
1487 if (!test_bit(ICNSS_MODE_ON, &priv->state) && in wlfw_wlan_mode_send_sync_msg()
1492 priv->state, mode); in wlfw_wlan_mode_send_sync_msg()
1506 req->hw_debug = !!test_bit(HW_DEBUG_ENABLE, &priv->ctrl_params.quirks); in wlfw_wlan_mode_send_sync_msg()
1508 if (priv->wlan_en_delay_ms >= 100) { in wlfw_wlan_mode_send_sync_msg()
1510 priv->wlan_en_delay_ms); in wlfw_wlan_mode_send_sync_msg()
1512 req->wlan_en_delay = priv->wlan_en_delay_ms; in wlfw_wlan_mode_send_sync_msg()
1515 priv->stats.mode_req++; in wlfw_wlan_mode_send_sync_msg()
1517 ret = qmi_txn_init(&priv->qmi, &txn, in wlfw_wlan_mode_send_sync_msg()
1524 ret = qmi_send_request(&priv->qmi, NULL, &txn, in wlfw_wlan_mode_send_sync_msg()
1535 priv->ctrl_params.qmi_timeout + in wlfw_wlan_mode_send_sync_msg()
1536 msecs_to_jiffies(priv->wlan_en_delay_ms)); in wlfw_wlan_mode_send_sync_msg()
1548 priv->stats.mode_resp++; in wlfw_wlan_mode_send_sync_msg()
1552 priv->state, mode); in wlfw_wlan_mode_send_sync_msg()
1553 clear_bit(ICNSS_MODE_ON, &priv->state); in wlfw_wlan_mode_send_sync_msg()
1556 priv->state, mode); in wlfw_wlan_mode_send_sync_msg()
1557 set_bit(ICNSS_MODE_ON, &priv->state); in wlfw_wlan_mode_send_sync_msg()
1567 priv->stats.mode_req_err++; in wlfw_wlan_mode_send_sync_msg()
1572 (struct icnss_priv *priv, in wlfw_send_qdss_trace_mode_req() argument
1582 if (!priv) in wlfw_send_qdss_trace_mode_req()
1600 tmp = priv->hw_trc_override; in wlfw_send_qdss_trace_mode_req()
1610 rc = qmi_txn_init(&priv->qmi, &txn, in wlfw_send_qdss_trace_mode_req()
1618 rc = qmi_send_request(&priv->qmi, NULL, &txn, in wlfw_send_qdss_trace_mode_req()
1628 rc = qmi_txn_wait(&txn, priv->ctrl_params.qmi_timeout); in wlfw_send_qdss_trace_mode_req()
1647 int wlfw_qdss_trace_start(struct icnss_priv *priv) in wlfw_qdss_trace_start() argument
1649 return wlfw_send_qdss_trace_mode_req(priv, in wlfw_qdss_trace_start()
1653 int wlfw_qdss_trace_stop(struct icnss_priv *priv, unsigned long long option) in wlfw_qdss_trace_stop() argument
1655 return wlfw_send_qdss_trace_mode_req(priv, QMI_WLFW_QDSS_TRACE_OFF_V01, in wlfw_qdss_trace_stop()
1659 int wlfw_wlan_cfg_send_sync_msg(struct icnss_priv *priv, in wlfw_wlan_cfg_send_sync_msg() argument
1667 if (!priv) in wlfw_wlan_cfg_send_sync_msg()
1670 icnss_pr_dbg("Sending config request, state: 0x%lx\n", priv->state); in wlfw_wlan_cfg_send_sync_msg()
1684 priv->stats.cfg_req++; in wlfw_wlan_cfg_send_sync_msg()
1686 ret = qmi_txn_init(&priv->qmi, &txn, in wlfw_wlan_cfg_send_sync_msg()
1694 ret = qmi_send_request(&priv->qmi, NULL, &txn, in wlfw_wlan_cfg_send_sync_msg()
1704 ret = qmi_txn_wait(&txn, priv->ctrl_params.qmi_timeout); in wlfw_wlan_cfg_send_sync_msg()
1717 priv->stats.cfg_resp++; in wlfw_wlan_cfg_send_sync_msg()
1726 priv->stats.cfg_req_err++; in wlfw_wlan_cfg_send_sync_msg()
1730 int wlfw_send_modem_shutdown_msg(struct icnss_priv *priv) in wlfw_send_modem_shutdown_msg() argument
1737 if (!priv) in wlfw_send_modem_shutdown_msg()
1740 if (test_bit(ICNSS_FW_DOWN, &priv->state)) in wlfw_send_modem_shutdown_msg()
1744 priv->state); in wlfw_send_modem_shutdown_msg()
1759 ret = qmi_txn_init(&priv->qmi, &txn, in wlfw_send_modem_shutdown_msg()
1768 ret = qmi_send_request(&priv->qmi, NULL, &txn, in wlfw_send_modem_shutdown_msg()
1778 ret = qmi_txn_wait(&txn, priv->ctrl_params.qmi_timeout); in wlfw_send_modem_shutdown_msg()
1796 int wlfw_ini_send_sync_msg(struct icnss_priv *priv, uint8_t fw_log_mode) in wlfw_ini_send_sync_msg() argument
1803 if (!priv) in wlfw_ini_send_sync_msg()
1807 priv->state, fw_log_mode); in wlfw_ini_send_sync_msg()
1822 priv->stats.ini_req++; in wlfw_ini_send_sync_msg()
1824 ret = qmi_txn_init(&priv->qmi, &txn, wlfw_ini_resp_msg_v01_ei, resp); in wlfw_ini_send_sync_msg()
1830 ret = qmi_send_request(&priv->qmi, NULL, &txn, in wlfw_ini_send_sync_msg()
1840 ret = qmi_txn_wait(&txn, priv->ctrl_params.qmi_timeout); in wlfw_ini_send_sync_msg()
1852 priv->stats.ini_resp++; in wlfw_ini_send_sync_msg()
1861 priv->stats.ini_req_err++; in wlfw_ini_send_sync_msg()
1865 int wlfw_athdiag_read_send_sync_msg(struct icnss_priv *priv, in wlfw_athdiag_read_send_sync_msg() argument
1874 if (!priv) in wlfw_athdiag_read_send_sync_msg()
1878 priv->state, offset, mem_type, data_len); in wlfw_athdiag_read_send_sync_msg()
1894 ret = qmi_txn_init(&priv->qmi, &txn, in wlfw_athdiag_read_send_sync_msg()
1902 ret = qmi_send_request(&priv->qmi, NULL, &txn, in wlfw_athdiag_read_send_sync_msg()
1912 ret = qmi_txn_wait(&txn, priv->ctrl_params.qmi_timeout); in wlfw_athdiag_read_send_sync_msg()
1941 int wlfw_athdiag_write_send_sync_msg(struct icnss_priv *priv, in wlfw_athdiag_write_send_sync_msg() argument
1950 if (!priv) in wlfw_athdiag_write_send_sync_msg()
1954 priv->state, offset, mem_type, data_len, data); in wlfw_athdiag_write_send_sync_msg()
1971 ret = qmi_txn_init(&priv->qmi, &txn, in wlfw_athdiag_write_send_sync_msg()
1979 ret = qmi_send_request(&priv->qmi, NULL, &txn, in wlfw_athdiag_write_send_sync_msg()
1989 ret = qmi_txn_wait(&txn, priv->ctrl_params.qmi_timeout); in wlfw_athdiag_write_send_sync_msg()
2009 int wlfw_rejuvenate_ack_send_sync_msg(struct icnss_priv *priv) in wlfw_rejuvenate_ack_send_sync_msg() argument
2016 if (!priv) in wlfw_rejuvenate_ack_send_sync_msg()
2020 priv->state); in wlfw_rejuvenate_ack_send_sync_msg()
2032 priv->stats.rejuvenate_ack_req++; in wlfw_rejuvenate_ack_send_sync_msg()
2034 ret = qmi_txn_init(&priv->qmi, &txn, in wlfw_rejuvenate_ack_send_sync_msg()
2043 ret = qmi_send_request(&priv->qmi, NULL, &txn, in wlfw_rejuvenate_ack_send_sync_msg()
2054 ret = qmi_txn_wait(&txn, priv->ctrl_params.qmi_timeout); in wlfw_rejuvenate_ack_send_sync_msg()
2068 priv->stats.rejuvenate_ack_resp++; in wlfw_rejuvenate_ack_send_sync_msg()
2077 priv->stats.rejuvenate_ack_err++; in wlfw_rejuvenate_ack_send_sync_msg()
2081 int wlfw_dynamic_feature_mask_send_sync_msg(struct icnss_priv *priv, in wlfw_dynamic_feature_mask_send_sync_msg() argument
2089 if (!priv) in wlfw_dynamic_feature_mask_send_sync_msg()
2092 if (!test_bit(ICNSS_WLFW_CONNECTED, &priv->state)) { in wlfw_dynamic_feature_mask_send_sync_msg()
2094 priv->state); in wlfw_dynamic_feature_mask_send_sync_msg()
2098 if (!test_bit(FW_REJUVENATE_ENABLE, &priv->ctrl_params.quirks)) { in wlfw_dynamic_feature_mask_send_sync_msg()
2104 dynamic_feature_mask, priv->state); in wlfw_dynamic_feature_mask_send_sync_msg()
2119 ret = qmi_txn_init(&priv->qmi, &txn, in wlfw_dynamic_feature_mask_send_sync_msg()
2127 ret = qmi_send_request(&priv->qmi, NULL, &txn, in wlfw_dynamic_feature_mask_send_sync_msg()
2137 ret = qmi_txn_wait(&txn, priv->ctrl_params.qmi_timeout); in wlfw_dynamic_feature_mask_send_sync_msg()
2159 void icnss_handle_rejuvenate(struct icnss_priv *priv) in icnss_handle_rejuvenate() argument
2171 set_bit(ICNSS_REJUVENATE, &priv->state); in icnss_handle_rejuvenate()
2173 icnss_call_driver_uevent(priv, ICNSS_UEVENT_FW_DOWN, in icnss_handle_rejuvenate()
2175 icnss_driver_event_post(priv, ICNSS_DRIVER_EVENT_PD_SERVICE_DOWN, in icnss_handle_rejuvenate()
2179 int wlfw_qdss_trace_mem_info_send_sync(struct icnss_priv *priv) in wlfw_qdss_trace_mem_info_send_sync() argument
2184 struct icnss_fw_mem *qdss_mem = priv->qdss_mem; in wlfw_qdss_trace_mem_info_send_sync()
2188 if (test_bit(ICNSS_FW_DOWN, &priv->state)) in wlfw_qdss_trace_mem_info_send_sync()
2192 priv->state); in wlfw_qdss_trace_mem_info_send_sync()
2204 req->mem_seg_len = priv->qdss_mem_seg_len; in wlfw_qdss_trace_mem_info_send_sync()
2206 if (priv->qdss_mem_seg_len > QMI_WLFW_MAX_NUM_MEM_SEG_V01) { in wlfw_qdss_trace_mem_info_send_sync()
2208 priv->qdss_mem_seg_len); in wlfw_qdss_trace_mem_info_send_sync()
2223 ret = qmi_txn_init(&priv->qmi, &txn, in wlfw_qdss_trace_mem_info_send_sync()
2231 ret = qmi_send_request(&priv->qmi, NULL, &txn, in wlfw_qdss_trace_mem_info_send_sync()
2242 ret = qmi_txn_wait(&txn, priv->ctrl_params.qmi_timeout); in wlfw_qdss_trace_mem_info_send_sync()
2266 int icnss_wlfw_m3_dump_upload_done_send_sync(struct icnss_priv *priv, in icnss_wlfw_m3_dump_upload_done_send_sync() argument
2290 ret = qmi_txn_init(&priv->qmi, &txn, in icnss_wlfw_m3_dump_upload_done_send_sync()
2298 ret = qmi_send_request(&priv->qmi, NULL, &txn, in icnss_wlfw_m3_dump_upload_done_send_sync()
2309 ret = qmi_txn_wait(&txn, priv->ctrl_params.qmi_timeout); in icnss_wlfw_m3_dump_upload_done_send_sync()
2330 struct icnss_priv *priv = in fw_ready_ind_cb() local
2340 icnss_driver_event_post(priv, ICNSS_DRIVER_EVENT_FW_READY_IND, in fw_ready_ind_cb()
2347 struct icnss_priv *priv = container_of(qmi, struct icnss_priv, qmi); in msa_ready_ind_cb() local
2348 struct device *dev = &priv->pdev->dev; in msa_ready_ind_cb()
2350 uint64_t msa_base_addr = priv->msa_pa; in msa_ready_ind_cb()
2360 priv->stats.msa_ready_ind++; in msa_ready_ind_cb()
2370 priv->hang_event_data_len = ind_msg->hang_data_length; in msa_ready_ind_cb()
2379 (ind_msg->hang_data_addr_offset <= (priv->msa_mem_size - in msa_ready_ind_cb()
2386 if (priv->hang_event_data_pa == hang_data_phy_addr) in msa_ready_ind_cb()
2389 priv->hang_event_data_pa = hang_data_phy_addr; in msa_ready_ind_cb()
2390 priv->hang_event_data_va = devm_ioremap(dev, priv->hang_event_data_pa, in msa_ready_ind_cb()
2393 if (!priv->hang_event_data_va) { in msa_ready_ind_cb()
2395 &priv->hang_event_data_pa); in msa_ready_ind_cb()
2402 priv->hang_event_data_va); in msa_ready_ind_cb()
2411 priv->hang_event_data_va = NULL; in msa_ready_ind_cb()
2412 priv->hang_event_data_pa = 0; in msa_ready_ind_cb()
2413 priv->hang_event_data_len = 0; in msa_ready_ind_cb()
2420 struct icnss_priv *priv = container_of(qmi, struct icnss_priv, qmi); in pin_connect_result_ind_cb() local
2431 priv->pwr_pin_result = ind_msg->pwr_pin_result; in pin_connect_result_ind_cb()
2433 priv->phy_io_pin_result = ind_msg->phy_io_pin_result; in pin_connect_result_ind_cb()
2435 priv->rf_pin_result = ind_msg->rf_pin_result; in pin_connect_result_ind_cb()
2440 priv->stats.pin_connect_result++; in pin_connect_result_ind_cb()
2446 struct icnss_priv *priv = container_of(qmi, struct icnss_priv, qmi); in rejuvenate_ind_cb() local
2459 priv->cause_for_rejuvenation = ind_msg->cause_for_rejuvenation; in rejuvenate_ind_cb()
2461 priv->cause_for_rejuvenation = 0; in rejuvenate_ind_cb()
2463 priv->requesting_sub_system = ind_msg->requesting_sub_system; in rejuvenate_ind_cb()
2465 priv->requesting_sub_system = 0; in rejuvenate_ind_cb()
2467 priv->line_number = ind_msg->line_number; in rejuvenate_ind_cb()
2469 priv->line_number = 0; in rejuvenate_ind_cb()
2471 memcpy(priv->function_name, ind_msg->function_name, in rejuvenate_ind_cb()
2474 memset(priv->function_name, 0, in rejuvenate_ind_cb()
2478 priv->cause_for_rejuvenation, in rejuvenate_ind_cb()
2479 priv->requesting_sub_system, in rejuvenate_ind_cb()
2480 priv->line_number, in rejuvenate_ind_cb()
2481 priv->function_name); in rejuvenate_ind_cb()
2483 priv->stats.rejuvenate_ind++; in rejuvenate_ind_cb()
2485 icnss_handle_rejuvenate(priv); in rejuvenate_ind_cb()
2491 struct icnss_priv *priv = container_of(qmi, struct icnss_priv, qmi); in cal_done_ind_cb() local
2500 priv->cal_done = true; in cal_done_ind_cb()
2501 clear_bit(ICNSS_COLD_BOOT_CAL, &priv->state); in cal_done_ind_cb()
2508 struct icnss_priv *priv = container_of(qmi, struct icnss_priv, qmi); in fw_init_done_ind_cb() local
2509 struct device *dev = &priv->pdev->dev; in fw_init_done_ind_cb()
2511 uint64_t msa_base_addr = priv->msa_pa; in fw_init_done_ind_cb()
2529 priv->hang_event_data_len = ind_msg->hang_data_length; in fw_init_done_ind_cb()
2538 (ind_msg->hang_data_addr_offset <= (priv->msa_mem_size - in fw_init_done_ind_cb()
2545 if (priv->hang_event_data_pa == hang_data_phy_addr) in fw_init_done_ind_cb()
2548 priv->hang_event_data_pa = hang_data_phy_addr; in fw_init_done_ind_cb()
2549 priv->hang_event_data_va = devm_ioremap(dev, priv->hang_event_data_pa, in fw_init_done_ind_cb()
2552 if (!priv->hang_event_data_va) { in fw_init_done_ind_cb()
2554 &priv->hang_event_data_pa); in fw_init_done_ind_cb()
2562 priv->hang_event_data_va); in fw_init_done_ind_cb()
2571 priv->hang_event_data_va = NULL; in fw_init_done_ind_cb()
2572 priv->hang_event_data_pa = 0; in fw_init_done_ind_cb()
2573 priv->hang_event_data_len = 0; in fw_init_done_ind_cb()
2575 icnss_driver_event_post(priv, ICNSS_DRIVER_EVENT_FW_INIT_DONE_IND, in fw_init_done_ind_cb()
2585 struct icnss_priv *priv = in wlfw_qdss_trace_req_mem_ind_cb() local
2597 if (priv->qdss_mem_seg_len) { in wlfw_qdss_trace_req_mem_ind_cb()
2599 priv->qdss_mem_seg_len); in wlfw_qdss_trace_req_mem_ind_cb()
2603 priv->qdss_mem_seg_len = ind_msg->mem_seg_len; in wlfw_qdss_trace_req_mem_ind_cb()
2605 if (priv->qdss_mem_seg_len > QMI_WLFW_MAX_NUM_MEM_SEG_V01) { in wlfw_qdss_trace_req_mem_ind_cb()
2607 priv->qdss_mem_seg_len); in wlfw_qdss_trace_req_mem_ind_cb()
2611 for (i = 0; i < priv->qdss_mem_seg_len; i++) { in wlfw_qdss_trace_req_mem_ind_cb()
2615 priv->qdss_mem[i].type = ind_msg->mem_seg[i].type; in wlfw_qdss_trace_req_mem_ind_cb()
2616 priv->qdss_mem[i].size = ind_msg->mem_seg[i].size; in wlfw_qdss_trace_req_mem_ind_cb()
2619 icnss_driver_event_post(priv, ICNSS_DRIVER_EVENT_QDSS_TRACE_REQ_MEM, in wlfw_qdss_trace_req_mem_ind_cb()
2628 struct icnss_priv *priv = in wlfw_qdss_trace_save_ind_cb() local
2677 icnss_driver_event_post(priv, ICNSS_DRIVER_EVENT_QDSS_TRACE_REQ_DATA, in wlfw_qdss_trace_save_ind_cb()
2683 icnss_driver_event_post(priv, ICNSS_DRIVER_EVENT_QDSS_TRACE_SAVE, in wlfw_qdss_trace_save_ind_cb()
2698 struct icnss_priv *priv = in wlfw_qdss_trace_free_ind_cb() local
2701 icnss_driver_event_post(priv, ICNSS_DRIVER_EVENT_QDSS_TRACE_FREE, in wlfw_qdss_trace_free_ind_cb()
2710 struct icnss_priv *priv = container_of(qmi, struct icnss_priv, qmi); in icnss_wlfw_respond_get_info_ind_cb() local
2722 if (priv->get_info_cb_ctx && priv->get_info_cb) in icnss_wlfw_respond_get_info_ind_cb()
2723 priv->get_info_cb(priv->get_info_cb_ctx, in icnss_wlfw_respond_get_info_ind_cb()
2733 struct icnss_priv *priv = container_of(qmi, struct icnss_priv, qmi); in icnss_wlfw_m3_dump_upload_segs_req_ind_cb() local
2759 max_mapped_addr = priv->msa_pa + priv->msa_mem_size; in icnss_wlfw_m3_dump_upload_segs_req_ind_cb()
2765 if (ind_msg->m3_segment[i].size > priv->msa_mem_size || in icnss_wlfw_m3_dump_upload_segs_req_ind_cb()
2767 segment_addr < priv->msa_pa || in icnss_wlfw_m3_dump_upload_segs_req_ind_cb()
2792 icnss_driver_event_post(priv, ICNSS_DRIVER_EVENT_M3_DUMP_UPLOAD_REQ, in icnss_wlfw_m3_dump_upload_segs_req_ind_cb()
2801 (struct icnss_priv *priv, in icnss_wlfw_wfc_call_status_send_sync() argument
2809 if (!test_bit(ICNSS_FW_READY, &priv->state) || in icnss_wlfw_wfc_call_status_send_sync()
2810 !test_bit(ICNSS_MODE_ON, &priv->state)) { in icnss_wlfw_wfc_call_status_send_sync()
2850 priv->state); in icnss_wlfw_wfc_call_status_send_sync()
2852 ret = qmi_txn_init(&priv->qmi, &txn, in icnss_wlfw_wfc_call_status_send_sync()
2860 ret = qmi_send_request(&priv->qmi, NULL, &txn, in icnss_wlfw_wfc_call_status_send_sync()
2871 ret = qmi_txn_wait(&txn, priv->ctrl_params.qmi_timeout); in icnss_wlfw_wfc_call_status_send_sync()
2892 (struct icnss_priv *priv, in icnss_ims_wfc_call_twt_cfg_send_sync() argument
2900 if (!test_bit(ICNSS_IMS_CONNECTED, &priv->state)) { in icnss_ims_wfc_call_twt_cfg_send_sync()
2930 priv->state); in icnss_ims_wfc_call_twt_cfg_send_sync()
2933 qmi_txn_init(&priv->ims_qmi, &txn, in icnss_ims_wfc_call_twt_cfg_send_sync()
2943 qmi_send_request(&priv->ims_qmi, NULL, &txn, in icnss_ims_wfc_call_twt_cfg_send_sync()
2953 ret = qmi_txn_wait(&txn, priv->ctrl_params.qmi_timeout); in icnss_ims_wfc_call_twt_cfg_send_sync()
2972 int icnss_process_twt_cfg_ind_event(struct icnss_priv *priv, in icnss_process_twt_cfg_ind_event() argument
2978 ret = icnss_ims_wfc_call_twt_cfg_send_sync(priv, ind_msg); in icnss_process_twt_cfg_ind_event()
2988 struct icnss_priv *priv = in icnss_wlfw_process_twt_cfg_ind() local
3014 icnss_driver_event_post(priv, ICNSS_DRIVER_EVENT_WLFW_TWT_CFG_IND, 0, in icnss_wlfw_process_twt_cfg_ind()
3113 int icnss_connect_to_fw_server(struct icnss_priv *priv, void *data) in icnss_connect_to_fw_server() argument
3116 struct qmi_handle *qmi = &priv->qmi; in icnss_connect_to_fw_server()
3120 if (!priv) { in icnss_connect_to_fw_server()
3134 icnss_pr_info("QMI Server Connected: state: 0x%lx\n", priv->state); in icnss_connect_to_fw_server()
3145 int icnss_clear_server(struct icnss_priv *priv) in icnss_clear_server() argument
3149 if (!priv) in icnss_clear_server()
3152 icnss_pr_info("QMI Service Disconnected: 0x%lx\n", priv->state); in icnss_clear_server()
3153 clear_bit(ICNSS_WLFW_CONNECTED, &priv->state); in icnss_clear_server()
3155 icnss_unregister_fw_service(priv); in icnss_clear_server()
3157 clear_bit(ICNSS_DEL_SERVER, &priv->state); in icnss_clear_server()
3159 ret = icnss_register_fw_service(priv); in icnss_clear_server()
3171 struct icnss_priv *priv = in wlfw_new_server() local
3175 if (priv && test_bit(ICNSS_DEL_SERVER, &priv->state)) { in wlfw_new_server()
3177 priv->state); in wlfw_new_server()
3191 icnss_driver_event_post(priv, ICNSS_DRIVER_EVENT_SERVER_ARRIVE, in wlfw_new_server()
3200 struct icnss_priv *priv = container_of(qmi, struct icnss_priv, qmi); in wlfw_del_server() local
3202 if (priv && test_bit(ICNSS_DEL_SERVER, &priv->state)) { in wlfw_del_server()
3204 priv->state); in wlfw_del_server()
3210 if (priv) { in wlfw_del_server()
3211 set_bit(ICNSS_DEL_SERVER, &priv->state); in wlfw_del_server()
3212 set_bit(ICNSS_FW_DOWN, &priv->state); in wlfw_del_server()
3216 icnss_driver_event_post(priv, ICNSS_DRIVER_EVENT_SERVER_EXIT, in wlfw_del_server()
3225 int icnss_register_fw_service(struct icnss_priv *priv) in icnss_register_fw_service() argument
3229 ret = qmi_handle_init(&priv->qmi, in icnss_register_fw_service()
3235 if (priv->device_id == WCN6750_DEVICE_ID || in icnss_register_fw_service()
3236 priv->device_id == WCN6450_DEVICE_ID) in icnss_register_fw_service()
3237 ret = qmi_add_lookup(&priv->qmi, WLFW_SERVICE_ID_V01, in icnss_register_fw_service()
3241 ret = qmi_add_lookup(&priv->qmi, WLFW_SERVICE_ID_V01, in icnss_register_fw_service()
3247 void icnss_unregister_fw_service(struct icnss_priv *priv) in icnss_unregister_fw_service() argument
3249 set_bit(ICNSS_DEL_SERVER, &priv->state); in icnss_unregister_fw_service()
3250 qmi_handle_release(&priv->qmi); in icnss_unregister_fw_service()
3253 int icnss_send_wlan_enable_to_fw(struct icnss_priv *priv, in icnss_send_wlan_enable_to_fw() argument
3305 if (priv->device_id == WCN6750_DEVICE_ID) { in icnss_send_wlan_enable_to_fw()
3317 } else if (priv->device_id == ADRASTEA_DEVICE_ID) { in icnss_send_wlan_enable_to_fw()
3327 } else if (priv->device_id == WCN6450_DEVICE_ID) { in icnss_send_wlan_enable_to_fw()
3340 ret = wlfw_wlan_cfg_send_sync_msg(priv, &req); in icnss_send_wlan_enable_to_fw()
3344 ret = wlfw_wlan_mode_send_sync_msg(priv, in icnss_send_wlan_enable_to_fw()
3347 if (test_bit(SKIP_QMI, &priv->ctrl_params.quirks)) in icnss_send_wlan_enable_to_fw()
3353 int icnss_send_wlan_disable_to_fw(struct icnss_priv *priv) in icnss_send_wlan_disable_to_fw() argument
3357 return wlfw_wlan_mode_send_sync_msg(priv, mode); in icnss_send_wlan_disable_to_fw()
3372 int wlfw_host_cap_send_sync(struct icnss_priv *priv) in wlfw_host_cap_send_sync() argument
3384 priv->state); in wlfw_host_cap_send_sync()
3403 req->cal_done = priv->cal_done; in wlfw_host_cap_send_sync()
3404 icnss_pr_dbg("Calibration done is %d\n", priv->cal_done); in wlfw_host_cap_send_sync()
3406 if (priv->smmu_s1_enable && in wlfw_host_cap_send_sync()
3407 !icnss_get_iova(priv, &iova_start, &iova_size) && in wlfw_host_cap_send_sync()
3408 !icnss_get_iova_ipa(priv, &iova_ipa_start, in wlfw_host_cap_send_sync()
3413 req->ddr_range[1].start = priv->msa_pa; in wlfw_host_cap_send_sync()
3414 req->ddr_range[1].size = priv->msa_mem_size; in wlfw_host_cap_send_sync()
3424 if (priv->wlan_en_delay_ms >= 100) { in wlfw_host_cap_send_sync()
3426 priv->wlan_en_delay_ms); in wlfw_host_cap_send_sync()
3428 req->wlan_enable_delay = priv->wlan_en_delay_ms; in wlfw_host_cap_send_sync()
3439 ret = of_property_read_u32(priv->pdev->dev.of_node, "wlan-en-gpio", in wlfw_host_cap_send_sync()
3449 ret = of_property_read_u32(priv->pdev->dev.of_node, "bt-en-gpio", in wlfw_host_cap_send_sync()
3459 ret = of_property_read_u32(priv->pdev->dev.of_node, "host-sol-gpio", in wlfw_host_cap_send_sync()
3469 ret = of_property_read_u32(priv->pdev->dev.of_node, "target-sol-gpio", in wlfw_host_cap_send_sync()
3481 ret = qmi_txn_init(&priv->qmi, &txn, in wlfw_host_cap_send_sync()
3489 ret = qmi_send_request(&priv->qmi, NULL, &txn, in wlfw_host_cap_send_sync()
3500 ret = qmi_txn_wait(&txn, priv->ctrl_params.qmi_timeout); in wlfw_host_cap_send_sync()
3671 int icnss_send_vbatt_update(struct icnss_priv *priv, uint64_t voltage_uv) in icnss_send_vbatt_update() argument
3678 if (!priv) in icnss_send_vbatt_update()
3681 if (test_bit(ICNSS_FW_DOWN, &priv->state)) in icnss_send_vbatt_update()
3684 icnss_pr_dbg("Sending Vbatt message, state: 0x%lx\n", priv->state); in icnss_send_vbatt_update()
3698 ret = qmi_txn_init(&priv->qmi, &txn, wlfw_vbatt_resp_msg_v01_ei, resp); in icnss_send_vbatt_update()
3705 ret = qmi_send_request(&priv->qmi, NULL, &txn, in icnss_send_vbatt_update()
3715 ret = qmi_txn_wait(&txn, priv->ctrl_params.qmi_timeout); in icnss_send_vbatt_update()
3805 int ims_subscribe_for_indication_send_async(struct icnss_priv *priv) in ims_subscribe_for_indication_send_async() argument
3811 if (!priv) in ims_subscribe_for_indication_send_async()
3823 txn = &priv->ims_async_txn; in ims_subscribe_for_indication_send_async()
3824 ret = qmi_txn_init(&priv->ims_qmi, txn, NULL, NULL); in ims_subscribe_for_indication_send_async()
3832 (&priv->ims_qmi, NULL, txn, in ims_subscribe_for_indication_send_async()
3874 int icnss_process_wfc_call_ind_event(struct icnss_priv *priv, in icnss_process_wfc_call_ind_event() argument
3880 ret = icnss_wlfw_wfc_call_status_send_sync(priv, ind_msg); in icnss_process_wfc_call_ind_event()
3890 struct icnss_priv *priv = in icnss_ims_process_wfc_call_ind_cb() local
3916 icnss_driver_event_post(priv, ICNSS_DRIVER_EVENT_IMS_WFC_CALL_IND, in icnss_ims_process_wfc_call_ind_cb()
3945 struct icnss_priv *priv = in ims_new_server() local
3962 set_bit(ICNSS_IMS_CONNECTED, &priv->state); in ims_new_server()
3964 priv->state); in ims_new_server()
3966 ret = ims_subscribe_for_indication_send_async(priv); in ims_new_server()
3973 struct icnss_priv *priv = in ims_del_server() local
3978 clear_bit(ICNSS_IMS_CONNECTED, &priv->state); in ims_del_server()
3986 int icnss_register_ims_service(struct icnss_priv *priv) in icnss_register_ims_service() argument
3990 ret = qmi_handle_init(&priv->ims_qmi, in icnss_register_ims_service()
3996 ret = qmi_add_lookup(&priv->ims_qmi, IMSPRIVATE_SERVICE_ID_V01, in icnss_register_ims_service()
4001 void icnss_unregister_ims_service(struct icnss_priv *priv) in icnss_unregister_ims_service() argument
4003 qmi_handle_release(&priv->ims_qmi); in icnss_unregister_ims_service()