From dd78eef93a2386a50c525dcdb62033d656ac99ae Mon Sep 17 00:00:00 2001 From: Sravan Goud Date: Thu, 9 Jan 2020 09:58:28 +0530 Subject: [PATCH] qcacld-3.0: Reset ipa pending tx timer at pipes enable In case of STA + SAP ipa pending tx timer is started when last SAP client disconnects. Again if client connects back timer is not stopped at pipes enable. Later some time if suspend kicks in and during bus suspend if there are no ipa tx pending ipa pipes are disabled. This leads to issues such as data stall, invalid IPA doorbell register access. So reset the timer during ipa enable pipes. Change-Id: Id6034596f52f98c793674c9d9e5f7918c5c3d455 CRs-Fixed: 2598559 --- components/ipa/core/src/wlan_ipa_core.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/components/ipa/core/src/wlan_ipa_core.c b/components/ipa/core/src/wlan_ipa_core.c index 4300e403dae1..9c69e421959f 100644 --- a/components/ipa/core/src/wlan_ipa_core.c +++ b/components/ipa/core/src/wlan_ipa_core.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2013-2019 The Linux Foundation. All rights reserved. + * Copyright (c) 2013-2020 The Linux Foundation. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -1239,6 +1239,9 @@ QDF_STATUS wlan_ipa_uc_enable_pipes(struct wlan_ipa_priv *ipa_ctx) ipa_ctx->pipes_enable_in_progress = true; qdf_spin_unlock_bh(&ipa_ctx->enable_disable_lock); + if (qdf_atomic_read(&ipa_ctx->waiting_on_pending_tx)) + wlan_ipa_reset_pending_tx_timer(ipa_ctx); + if (qdf_atomic_read(&ipa_ctx->pipes_disabled)) { result = cdp_ipa_enable_pipes(ipa_ctx->dp_soc, ipa_ctx->dp_pdev_id);