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

Commit dd650a28 authored by Skylar Chang's avatar Skylar Chang
Browse files

msm: ipa3: retry on IPA_HW_CONS_DISABLE_CMD_GSI_STOP_FAILURE



When IPA uC fails to stop a GSI channel with GSI STOP_IN_PROG
state, apps needs to sleep for 1ms and retry.

Change-Id: I9e6022ab996861d3d78721aadea9e6116ded4e0f
CRs-Fixed: 1087474
Acked-by: default avatarAdy Abraham <adya@qti.qualcomm.com>
Signed-off-by: default avatarSkylar Chang <chiaweic@codeaurora.org>
parent 24d0c1f9
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -585,7 +585,9 @@ send_cmd:

	if (ipa3_ctx->uc_ctx.uc_status != expected_status) {
		if (ipa3_ctx->uc_ctx.uc_status ==
			IPA_HW_PROD_DISABLE_CMD_GSI_STOP_FAILURE) {
		    IPA_HW_PROD_DISABLE_CMD_GSI_STOP_FAILURE ||
		    ipa3_ctx->uc_ctx.uc_status ==
		    IPA_HW_CONS_DISABLE_CMD_GSI_STOP_FAILURE) {
			retries++;
			if (retries == IPA_GSI_CHANNEL_STOP_MAX_RETRY) {
				IPAERR("Failed after %d tries\n", retries);
@@ -594,6 +596,8 @@ send_cmd:
				return -EFAULT;
			}
			IPA3_UC_UNLOCK(flags);
			if (ipa3_ctx->uc_ctx.uc_status ==
			    IPA_HW_PROD_DISABLE_CMD_GSI_STOP_FAILURE)
				ipa3_inject_dma_task_for_gsi();
			/* sleep for short period to flush IPA */
			usleep_range(IPA_GSI_CHANNEL_STOP_SLEEP_MIN_USEC,