diff options
| author | Padma, Santhosh Kumar <skpadma@codeaurora.org> | 2018-04-09 16:07:08 +0530 |
|---|---|---|
| committer | nshrivas <nshrivas@codeaurora.org> | 2018-04-09 08:17:58 -0700 |
| commit | 2f38e6e5ffcfacf306d0c81fac2d24e120e8960c (patch) | |
| tree | 87bfdf1d7856f3207b29225af0e07ac7a01fbc5f | |
| parent | 781b7c683b109e772577b3efa9124d075c401c68 (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.h | 6 | ||||
| -rw-r--r-- | core/hdd/src/wlan_hdd_cfg80211.c | 2 |
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), |
