summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPadma, Santhosh Kumar <skpadma@qti.qualcomm.com>2015-08-13 19:34:34 +0530
committerAnjaneedevi Kapparapu <akappa@codeaurora.org>2016-05-24 19:10:17 +0530
commit84a84d6a25142d3e263d9bf698e5e28e1c860867 (patch)
tree865ea2a095d092eedce014eb286489ca700ea74d
parent19c5901d2f42716931dc94aaba1e5c0cc5c07922 (diff)
qcacld-2.0: Reduce expiration time of traffic timer during roaming
prima to qcacld-2.0 propagation Currently, driver starts traffic timer for a period of 8secs after successful connection to allow for key completion and DHCP. As there is no DHCP during roaming, this delay is not required. So, stop this timer during roaming and start a timer of minimal duration to allow STA to enter power save immediately after key completion. Change-Id: I6c6111fc1aacb524da463914d357710a7f125f4a CRs-Fixed: 868916
-rw-r--r--CORE/HDD/src/wlan_hdd_assoc.c11
-rw-r--r--CORE/SME/inc/pmcApi.h9
2 files changed, 19 insertions, 1 deletions
diff --git a/CORE/HDD/src/wlan_hdd_assoc.c b/CORE/HDD/src/wlan_hdd_assoc.c
index e6d1c54bebf2..067cfa387217 100644
--- a/CORE/HDD/src/wlan_hdd_assoc.c
+++ b/CORE/HDD/src/wlan_hdd_assoc.c
@@ -4011,6 +4011,17 @@ hdd_smeRoamCallback(void *pContext, tCsrRoamInfo *pRoamInfo, tANI_U32 roamId,
eSME_FULL_PWR_NEEDED_BY_HDD);
}
}
+ if ((pHddCtx) &&
+ FULL_POWER == pmcGetPmcState(pHddCtx->hHal) &&
+ VOS_TRUE == pHddStaCtx->hdd_ReassocScenario) {
+ hddLog(LOG1,
+ FL("Device in full power, Stop and start traffic timer for roaming"));
+ pmcStopTrafficTimer(pHddCtx->hHal);
+
+ if (pmcStartTrafficTimer(pHddCtx->hHal,
+ TRAFFIC_TIMER_ROAMING) != eHAL_STATUS_SUCCESS)
+ hddLog(LOGP, FL("Cannot start traffic timer"));
+ }
halStatus = hdd_RoamSetKeyCompleteHandler( pAdapter, pRoamInfo, roamId, roamStatus, roamResult );
if (eCSR_ROAM_RESULT_AUTHENTICATED == roamResult) {
pHddStaCtx->hdd_ReassocScenario = VOS_FALSE;
diff --git a/CORE/SME/inc/pmcApi.h b/CORE/SME/inc/pmcApi.h
index 6052b3f79f23..7b915b99785a 100644
--- a/CORE/SME/inc/pmcApi.h
+++ b/CORE/SME/inc/pmcApi.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011-2015 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2011-2016 The Linux Foundation. All rights reserved.
*
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
*
@@ -56,6 +56,13 @@
//should be large enough to allow the auth, DHCP handshake to complete
#define BMPS_TRAFFIC_TIMER_ALLOW_SECURITY_DHCP 8000 //unit = ms
+/*
+ * This timer value is used to start the timer right after key completion
+ * during roaming. This should be small enough to allow STA to enter PS
+ * immediately after key completion as no DHCP phase during roaming.
+ */
+#define TRAFFIC_TIMER_ROAMING 100
+
#define PMC_IS_CHIP_ACCESSIBLE(pmcState) ( (IMPS != (pmcState)) && (REQUEST_IMPS != (pmcState)) && \
(STANDBY != (pmcState)) && (REQUEST_STANDBY != (pmcState)) )