Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 52a48a1f authored by Anurag Chouhan's avatar Anurag Chouhan
Browse files

icnss: Add support to validate the result and error code



Add support to validate the result and error code
received from the WLAN firmware service.

CRs-fixed: 2095184
Change-Id: I454df58e293fbf2d99601d1c6820e67b5cae370c
Signed-off-by: default avatarAnurag Chouhan <achouhan@codeaurora.org>
parent 7cf6dd03
Loading
Loading
Loading
Loading
+16 −12
Original line number Original line Diff line number Diff line
@@ -152,6 +152,8 @@ bool ignore_qmi_timeout;
#define ICNSS_QMI_ASSERT() do { } while (0)
#define ICNSS_QMI_ASSERT() do { } while (0)
#endif
#endif


#define QMI_ERR_PLAT_CCPM_CLK_INIT_FAILED 0x77

enum icnss_debug_quirks {
enum icnss_debug_quirks {
	HW_ALWAYS_ON,
	HW_ALWAYS_ON,
	HW_DEBUG_ENABLE,
	HW_DEBUG_ENABLE,
@@ -740,7 +742,7 @@ static int wlfw_vbatt_send_sync_msg(struct icnss_priv *priv,
	if (resp.resp.result != QMI_RESULT_SUCCESS_V01) {
	if (resp.resp.result != QMI_RESULT_SUCCESS_V01) {
		icnss_pr_err("QMI vbatt request rejected, result:%d error:%d\n",
		icnss_pr_err("QMI vbatt request rejected, result:%d error:%d\n",
			resp.resp.result, resp.resp.error);
			resp.resp.result, resp.resp.error);
		ret = resp.resp.result;
		ret = -resp.resp.result;
		goto out;
		goto out;
	}
	}
	priv->stats.vbatt_resp++;
	priv->stats.vbatt_resp++;
@@ -1224,7 +1226,7 @@ static int wlfw_msa_mem_info_send_sync_msg(void)
	if (resp.resp.result != QMI_RESULT_SUCCESS_V01) {
	if (resp.resp.result != QMI_RESULT_SUCCESS_V01) {
		icnss_pr_err("QMI MSA Mem info request rejected, result:%d error:%d\n",
		icnss_pr_err("QMI MSA Mem info request rejected, result:%d error:%d\n",
			resp.resp.result, resp.resp.error);
			resp.resp.result, resp.resp.error);
		ret = resp.resp.result;
		ret = -resp.resp.result;
		goto out;
		goto out;
	}
	}


@@ -1296,7 +1298,7 @@ static int wlfw_msa_ready_send_sync_msg(void)
	if (resp.resp.result != QMI_RESULT_SUCCESS_V01) {
	if (resp.resp.result != QMI_RESULT_SUCCESS_V01) {
		icnss_pr_err("QMI MSA ready request rejected: result:%d error:%d\n",
		icnss_pr_err("QMI MSA ready request rejected: result:%d error:%d\n",
			resp.resp.result, resp.resp.error);
			resp.resp.result, resp.resp.error);
		ret = resp.resp.result;
		ret = -resp.resp.result;
		goto out;
		goto out;
	}
	}
	penv->stats.msa_ready_resp++;
	penv->stats.msa_ready_resp++;
@@ -1359,7 +1361,7 @@ static int wlfw_ind_register_send_sync_msg(void)
	if (resp.resp.result != QMI_RESULT_SUCCESS_V01) {
	if (resp.resp.result != QMI_RESULT_SUCCESS_V01) {
		icnss_pr_err("QMI indication register request rejected, resut:%d error:%d\n",
		icnss_pr_err("QMI indication register request rejected, resut:%d error:%d\n",
		       resp.resp.result, resp.resp.error);
		       resp.resp.result, resp.resp.error);
		ret = resp.resp.result;
		ret = -resp.resp.result;
		goto out;
		goto out;
	}
	}
	penv->stats.ind_register_resp++;
	penv->stats.ind_register_resp++;
@@ -1406,7 +1408,9 @@ static int wlfw_cap_send_sync_msg(void)
	if (resp.resp.result != QMI_RESULT_SUCCESS_V01) {
	if (resp.resp.result != QMI_RESULT_SUCCESS_V01) {
		icnss_pr_err("QMI capability request rejected, result:%d error:%d\n",
		icnss_pr_err("QMI capability request rejected, result:%d error:%d\n",
		       resp.resp.result, resp.resp.error);
		       resp.resp.result, resp.resp.error);
		ret = resp.resp.result;
		ret = -resp.resp.result;
		if (resp.resp.error == QMI_ERR_PLAT_CCPM_CLK_INIT_FAILED)
			icnss_pr_err("RF card Not present");
		goto out;
		goto out;
	}
	}


@@ -1489,7 +1493,7 @@ static int wlfw_wlan_mode_send_sync_msg(enum wlfw_driver_mode_enum_v01 mode)
	if (resp.resp.result != QMI_RESULT_SUCCESS_V01) {
	if (resp.resp.result != QMI_RESULT_SUCCESS_V01) {
		icnss_pr_err("QMI mode request rejected, mode:%d result:%d error:%d\n",
		icnss_pr_err("QMI mode request rejected, mode:%d result:%d error:%d\n",
			     mode, resp.resp.result, resp.resp.error);
			     mode, resp.resp.result, resp.resp.error);
		ret = resp.resp.result;
		ret = -resp.resp.result;
		goto out;
		goto out;
	}
	}
	penv->stats.mode_resp++;
	penv->stats.mode_resp++;
@@ -1539,7 +1543,7 @@ static int wlfw_wlan_cfg_send_sync_msg(struct wlfw_wlan_cfg_req_msg_v01 *data)
	if (resp.resp.result != QMI_RESULT_SUCCESS_V01) {
	if (resp.resp.result != QMI_RESULT_SUCCESS_V01) {
		icnss_pr_err("QMI config request rejected, result:%d error:%d\n",
		icnss_pr_err("QMI config request rejected, result:%d error:%d\n",
		       resp.resp.result, resp.resp.error);
		       resp.resp.result, resp.resp.error);
		ret = resp.resp.result;
		ret = -resp.resp.result;
		goto out;
		goto out;
	}
	}
	penv->stats.cfg_resp++;
	penv->stats.cfg_resp++;
@@ -1592,7 +1596,7 @@ static int wlfw_ini_send_sync_msg(uint8_t fw_log_mode)
	if (resp.resp.result != QMI_RESULT_SUCCESS_V01) {
	if (resp.resp.result != QMI_RESULT_SUCCESS_V01) {
		icnss_pr_err("QMI INI request rejected, fw_log_mode:%d result:%d error:%d\n",
		icnss_pr_err("QMI INI request rejected, fw_log_mode:%d result:%d error:%d\n",
			     fw_log_mode, resp.resp.result, resp.resp.error);
			     fw_log_mode, resp.resp.result, resp.resp.error);
		ret = resp.resp.result;
		ret = -resp.resp.result;
		goto out;
		goto out;
	}
	}
	penv->stats.ini_resp++;
	penv->stats.ini_resp++;
@@ -1652,7 +1656,7 @@ static int wlfw_athdiag_read_send_sync_msg(struct icnss_priv *priv,
	if (resp->resp.result != QMI_RESULT_SUCCESS_V01) {
	if (resp->resp.result != QMI_RESULT_SUCCESS_V01) {
		icnss_pr_err("QMI athdiag read request rejected, result:%d error:%d\n",
		icnss_pr_err("QMI athdiag read request rejected, result:%d error:%d\n",
			     resp->resp.result, resp->resp.error);
			     resp->resp.result, resp->resp.error);
		ret = resp->resp.result;
		ret = -resp->resp.result;
		goto out;
		goto out;
	}
	}


@@ -1718,7 +1722,7 @@ static int wlfw_athdiag_write_send_sync_msg(struct icnss_priv *priv,
	if (resp.resp.result != QMI_RESULT_SUCCESS_V01) {
	if (resp.resp.result != QMI_RESULT_SUCCESS_V01) {
		icnss_pr_err("QMI athdiag write request rejected, result:%d error:%d\n",
		icnss_pr_err("QMI athdiag write request rejected, result:%d error:%d\n",
			     resp.resp.result, resp.resp.error);
			     resp.resp.result, resp.resp.error);
		ret = resp.resp.result;
		ret = -resp.resp.result;
		goto out;
		goto out;
	}
	}
out:
out:
@@ -1813,7 +1817,7 @@ static int wlfw_rejuvenate_ack_send_sync_msg(struct icnss_priv *priv)
	if (resp.resp.result != QMI_RESULT_SUCCESS_V01) {
	if (resp.resp.result != QMI_RESULT_SUCCESS_V01) {
		icnss_pr_err("QMI rejuvenate ack request rejected, result:%d error %d\n",
		icnss_pr_err("QMI rejuvenate ack request rejected, result:%d error %d\n",
			     resp.resp.result, resp.resp.error);
			     resp.resp.result, resp.resp.error);
		ret = resp.resp.result;
		ret = -resp.resp.result;
		goto out;
		goto out;
	}
	}
	priv->stats.rejuvenate_ack_resp++;
	priv->stats.rejuvenate_ack_resp++;
@@ -1874,7 +1878,7 @@ static int wlfw_dynamic_feature_mask_send_sync_msg(struct icnss_priv *priv,
	if (resp.resp.result != QMI_RESULT_SUCCESS_V01) {
	if (resp.resp.result != QMI_RESULT_SUCCESS_V01) {
		icnss_pr_err("QMI dynamic feature mask request rejected, result:%d error %d\n",
		icnss_pr_err("QMI dynamic feature mask request rejected, result:%d error %d\n",
			     resp.resp.result, resp.resp.error);
			     resp.resp.result, resp.resp.error);
		ret = resp.resp.result;
		ret = -resp.resp.result;
		goto out;
		goto out;
	}
	}