diff options
| author | Skylar Chang <chiaweic@codeaurora.org> | 2016-11-14 14:39:48 -0800 |
|---|---|---|
| committer | Skylar Chang <chiaweic@codeaurora.org> | 2016-11-14 14:53:08 -0800 |
| commit | dd650a2835441296e93eb08a3eb352ba985bf887 (patch) | |
| tree | f40d45e25f9922a61fc333fa37253c29744c8894 | |
| parent | 24d0c1f91eb2850889cb27ef6fdcadc0c8ff2834 (diff) | |
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: Ady Abraham <adya@qti.qualcomm.com>
Signed-off-by: Skylar Chang <chiaweic@codeaurora.org>
| -rw-r--r-- | drivers/platform/msm/ipa/ipa_v3/ipa_uc.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/platform/msm/ipa/ipa_v3/ipa_uc.c b/drivers/platform/msm/ipa/ipa_v3/ipa_uc.c index cb47773e8a39..21ce28204069 100644 --- a/drivers/platform/msm/ipa/ipa_v3/ipa_uc.c +++ b/drivers/platform/msm/ipa/ipa_v3/ipa_uc.c @@ -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,7 +596,9 @@ send_cmd: return -EFAULT; } IPA3_UC_UNLOCK(flags); - ipa3_inject_dma_task_for_gsi(); + 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, IPA_GSI_CHANNEL_STOP_SLEEP_MAX_USEC); |
