From a61e5a90505c1b42ae9d7a1b90ada35dc711c9f3 Mon Sep 17 00:00:00 2001 From: Sravan Kumar Kairam Date: Mon, 18 Jun 2018 13:01:05 +0530 Subject: [PATCH] qcacld-3.0: Fix IPA Rx suspend timeout due to IPA Tx pipe stall The change id I50c357ca0f8ddfcc1a51ad4ed040961daf052459 is missed as part of UMAC IPA componentization changes. Propagate the missed change to IPA component. Change-Id: I33d83b5777ea259e29175e632a36e5fec3be24bc CRs-Fixed: 2262351 --- components/ipa/core/src/wlan_ipa_core.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/components/ipa/core/src/wlan_ipa_core.c b/components/ipa/core/src/wlan_ipa_core.c index 56af3ba0d2b8..e4f98892a366 100644 --- a/components/ipa/core/src/wlan_ipa_core.c +++ b/components/ipa/core/src/wlan_ipa_core.c @@ -1277,8 +1277,6 @@ static void wlan_ipa_uc_handle_last_discon(struct wlan_ipa_priv *ipa_ctx) qdf_event_reset(&ipa_ctx->ipa_resource_comp); ipa_info("Disable FW RX PIPE"); cdp_ipa_set_active(ipa_ctx->dp_soc, ipa_ctx->dp_pdev, false, false); - ipa_info("Disable FW TX PIPE"); - cdp_ipa_set_active(ipa_ctx->dp_soc, ipa_ctx->dp_pdev, false, true); ipa_debug("exit: IPA WDI Pipes deactivated"); } @@ -2549,6 +2547,14 @@ static void wlan_ipa_uc_op_cb(struct op_msg_type *op_msg, } else if ((msg->op_code == WLAN_IPA_UC_OPCODE_TX_SUSPEND) || (msg->op_code == WLAN_IPA_UC_OPCODE_RX_SUSPEND)) { qdf_mutex_acquire(&ipa_ctx->ipa_lock); + + if (msg->op_code == WLAN_IPA_UC_OPCODE_RX_SUSPEND) { + wlan_ipa_uc_disable_pipes(ipa_ctx); + ipa_info("Disable FW TX PIPE"); + cdp_ipa_set_active(ipa_ctx->dp_soc, ipa_ctx->dp_pdev, + false, true); + } + ipa_ctx->activated_fw_pipe--; if (!ipa_ctx->activated_fw_pipe) { /* @@ -2557,7 +2563,6 @@ static void wlan_ipa_uc_op_cb(struct op_msg_type *op_msg, */ ipa_ctx->resource_unloading = false; qdf_event_set(&ipa_ctx->ipa_resource_comp); - wlan_ipa_uc_disable_pipes(ipa_ctx); if (wlan_ipa_is_rm_enabled(ipa_ctx->config)) wlan_ipa_wdi_rm_release_resource(ipa_ctx, QDF_IPA_RM_RESOURCE_WLAN_PROD);