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

Commit 05f2ff28 authored by Bojun Pan's avatar Bojun Pan Committed by Gerrit - the friendly Code Review server
Browse files

msm: IPA: error code change for mhi failure on ssr



Send IPA_QMI_ERR_INCOMPATIBLE_STATE_V01 no matter why mhi failure.
When 5G ssr happens, mhi APIs may return error in multiple cases and
the chan_alloc / vote QMI request from Q6 will fail. It is safe to just
simply ignore the error to avoid stability issue in 5g ssr case.

Change-Id: I504944faa56ad025cab11f6dc9abf0882ee87b02
Signed-off-by: default avatarBojun Pan <bojunp@codeaurora.org>
parent b8bfc1d9
Loading
Loading
Loading
Loading
+8 −6
Original line number Diff line number Diff line
@@ -381,9 +381,10 @@ static int __imp_configure_mhi_device(
			ridx++;
			resp->alloc_resp_arr_len = ridx;
			resp->resp.result = IPA_QMI_RESULT_FAILURE_V01;
			/* return INCOMPATIBLE_STATE if mhi not active */
			/* return INCOMPATIBLE_STATE in any case */
			if (mhi_is_active(imp_ctx->md.mhi_dev))
				resp->resp.error = IPA_QMI_ERR_INVALID_ID_V01;
				resp->resp.error =
					IPA_QMI_ERR_INCOMPATIBLE_STATE_V01;
			else
				resp->resp.error =
					IPA_QMI_ERR_INCOMPATIBLE_STATE_V01;
@@ -549,9 +550,9 @@ struct ipa_mhi_alloc_channel_resp_msg_v01 *imp_handle_allocate_channel_req(
			.is_success = 0;
		resp->alloc_resp_arr_len++;
		resp->resp.result = IPA_QMI_RESULT_FAILURE_V01;
		/* return INCOMPATIBLE_STATE if mhi not active */
		/* return INCOMPATIBLE_STATE in any case */
		if (mhi_is_active(imp_ctx->md.mhi_dev))
			resp->resp.error = IPA_QMI_ERR_INTERNAL_V01;
			resp->resp.error = IPA_QMI_ERR_INCOMPATIBLE_STATE_V01;
		else
			resp->resp.error = IPA_QMI_ERR_INCOMPATIBLE_STATE_V01;
		goto fail_smmu;
@@ -640,9 +641,10 @@ struct ipa_mhi_clk_vote_resp_msg_v01
		if (ret) {
			IMP_ERR("mhi_sync_get failed %d\n", ret);
			resp->resp.result = IPA_QMI_RESULT_FAILURE_V01;
			/* return INCOMPATIBLE_STATE if mhi not active */
			/* return INCOMPATIBLE_STATE in any case */
			if (mhi_is_active(imp_ctx->md.mhi_dev))
				resp->resp.error = IPA_QMI_ERR_INVALID_ID_V01;
				resp->resp.error =
					IPA_QMI_ERR_INCOMPATIBLE_STATE_V01;
			else
				resp->resp.error =
					IPA_QMI_ERR_INCOMPATIBLE_STATE_V01;