summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSravan Kumar Kairam <sgoud@codeaurora.org>2017-07-25 19:03:40 +0530
committersnandini <snandini@codeaurora.org>2017-08-08 10:51:24 -0700
commit7cf8f3d60aaad2bc930676b934ce727f3a05ed85 (patch)
tree0f585b8da6b0b822a05f65fb896c176af17040ec
parentb956c34590ee2cc2cec94aa627f23b8e13ee959b (diff)
qcacld-3.0: Check if pipes already enabled for IPA enable pipes
Currently there is a race condition during enable of IPA WDI pipes after IPA_RM_RESOURCE_GRANTED notification from IPA RM and at the same time client disconnect happens. Because of this race condition subsequent enable IPA pipes at the time of client connection IPA driver returns error as the pipes are not disabled before. In this change after requesting IPA resource check for IPA pipes state and if pipes are not enabled then enable the pipes. Change-Id: Idd0d4089efa5b81d5301a278fb0dd836db0ecb48 CRs-Fixed: 2082118
-rw-r--r--core/hdd/src/wlan_hdd_ipa.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/core/hdd/src/wlan_hdd_ipa.c b/core/hdd/src/wlan_hdd_ipa.c
index 60f578cdf553..a626b8044885 100644
--- a/core/hdd/src/wlan_hdd_ipa.c
+++ b/core/hdd/src/wlan_hdd_ipa.c
@@ -1804,6 +1804,13 @@ static int hdd_ipa_uc_handle_first_con(struct hdd_ipa_priv *hdd_ipa)
/* RM PROD request sync return
* enable pipe immediately
*/
+ if (!hdd_ipa->ipa_pipes_down) {
+ HDD_IPA_LOG(QDF_TRACE_LEVEL_DEBUG,
+ "%s: IPA WDI Pipe already activated",
+ __func__);
+ return 0;
+ }
+
if (hdd_ipa_uc_enable_pipes(hdd_ipa)) {
HDD_IPA_LOG(QDF_TRACE_LEVEL_ERROR,
"%s: IPA WDI Pipe activation failed",
@@ -1811,6 +1818,10 @@ static int hdd_ipa_uc_handle_first_con(struct hdd_ipa_priv *hdd_ipa)
hdd_ipa->resource_loading = false;
return -EBUSY;
}
+ } else {
+ HDD_IPA_LOG(QDF_TRACE_LEVEL_INFO,
+ "%s: IPA WDI Pipe activation deferred",
+ __func__);
}
} else {
/* RM Disabled