summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPadma, Santhosh Kumar <skpadma@codeaurora.org>2018-04-09 16:07:08 +0530
committernshrivas <nshrivas@codeaurora.org>2018-04-09 08:17:58 -0700
commit2f38e6e5ffcfacf306d0c81fac2d24e120e8960c (patch)
tree87bfdf1d7856f3207b29225af0e07ac7a01fbc5f
parent781b7c683b109e772577b3efa9124d075c401c68 (diff)
qcacld-3.0: Hold wakelock till connection completion
There is a chance that kernel can trigger suspend while connection in progress. If driver allows this suspend, this can result in fw panic. Specific scenario: If driver allows suspend to go when it waits for probe response, fw least expects suspend indication as fw is in vdev start state. This unexpected suspend indication in vdev start state can cause fw panic. Hold wakelock till the completion of association to fix this issue. Change-Id: I168ead2ab1ef4fff1d9af3f3142c82536c3f4798 CRs-Fixed: 2217140
-rw-r--r--core/hdd/inc/wlan_hdd_power.h6
-rw-r--r--core/hdd/src/wlan_hdd_cfg80211.c2
2 files changed, 7 insertions, 1 deletions
diff --git a/core/hdd/inc/wlan_hdd_power.h b/core/hdd/inc/wlan_hdd_power.h
index e27e3cdbbadb..ecb062e9839d 100644
--- a/core/hdd/inc/wlan_hdd_power.h
+++ b/core/hdd/inc/wlan_hdd_power.h
@@ -42,6 +42,12 @@
#define HDD_WAKELOCK_TIMEOUT_CONNECT 1000
#define HDD_WAKELOCK_TIMEOUT_RESUME 1000
+/*
+ * HDD_WAKELOCK_CONNECT_COMPLETE = CSR_JOIN_FAILURE_TIMEOUT_DEFAULT (3000) +
+ * WNI_CFG_AUTHENTICATE_FAILURE_TIMEOUT_STADEF (1000) +
+ * WNI_CFG_ASSOCIATION_FAILURE_TIMEOUT_STADEF (2000)
+ */
+#define HDD_WAKELOCK_CONNECT_COMPLETE 6000
/**
* enum pkt_filter_protocol_layer - packet filter protocol layer
diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c
index 81bae1245223..b4b96209afcc 100644
--- a/core/hdd/src/wlan_hdd_cfg80211.c
+++ b/core/hdd/src/wlan_hdd_cfg80211.c
@@ -16788,7 +16788,7 @@ static int wlan_hdd_cfg80211_connect_start(hdd_adapter_t *pAdapter,
qdf_runtime_pm_prevent_suspend(
&pHddCtx->runtime_context.connect);
- hdd_prevent_suspend_timeout(HDD_WAKELOCK_TIMEOUT_CONNECT,
+ hdd_prevent_suspend_timeout(HDD_WAKELOCK_CONNECT_COMPLETE,
WIFI_POWER_EVENT_WAKELOCK_CONNECT);
qdf_status = sme_roam_connect(WLAN_HDD_GET_HAL_CTX(pAdapter),