浏览代码

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
Sravan Kumar Kairam 7 年之前
父节点
当前提交
6154a82ef2
共有 1 个文件被更改,包括 8 次插入3 次删除
  1. 8 3
      ipa/core/src/wlan_ipa_core.c

+ 8 - 3
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);