From ea0444543d0ee408f7cc80224ceff15bf85d6904 Mon Sep 17 00:00:00 2001 From: Yoona Kim Date: Tue, 16 Dec 2014 10:25:49 -0800 Subject: wlan: mac: scan optimization to avoid P2P stale entry This change addresses that driver ends up sending stale P2P scan results to upper layer during back to back P2P connection. Change-Id: Ia572ee781996c09903f064b77f40fe2c1ea3e6a4 CRs-Fixed: 771243 --- CORE/MAC/inc/aniGlobal.h | 2 ++ CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c | 14 ++++++++++++++ CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c | 1 + CORE/MAC/src/pe/lim/limSendSmeRspMessages.c | 22 ++++++++++++++++++++++ 4 files changed, 39 insertions(+) diff --git a/CORE/MAC/inc/aniGlobal.h b/CORE/MAC/inc/aniGlobal.h index cc79bc36282d..c586265ef9e8 100644 --- a/CORE/MAC/inc/aniGlobal.h +++ b/CORE/MAC/inc/aniGlobal.h @@ -846,6 +846,8 @@ tLimMlmOemDataRsp *gpLimMlmOemDataRsp; tANI_U8 fOffloadScanPending; /*Flag to track offload scan */ tANI_U8 fOffloadScanP2PSearch; /*Flag to track the p2p search */ tANI_U8 fOffloadScanP2PListen; /*Flag to track the p2p listen */ + /*Filter out P2P result if not P2P scan/listen */ + tANI_U8 offload_scan_filter_p2p_result; tANI_U8 probeCounter; tANI_U8 maxProbe; } tAniSirLim, *tpAniSirLim; diff --git a/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c b/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c index 33a209d2f91a..e7900565b787 100644 --- a/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c +++ b/CORE/MAC/src/pe/lim/limProcessMlmRspMessages.c @@ -4888,6 +4888,19 @@ void limProcessRxScanEvent(tpAniSirGlobal pMac, void *buf) break; case SCAN_EVENT_START_FAILED: case SCAN_EVENT_COMPLETED: + limLog(pMac, LOG1, FL("pMac->fScanOffload %d, pMac->lim.fOffloadScanPending %d, pMac->lim.fOffloadScanP2PSearch %d, pMac->lim.fOffloadScanP2PListen %d"), + pMac->fScanOffload, pMac->lim.fOffloadScanPending, + pMac->lim.fOffloadScanP2PSearch, + pMac->lim.fOffloadScanP2PListen); + + if ((SCAN_EVENT_COMPLETED == pScanEvent->event) && + !(pMac->fScanOffload && pMac->lim.fOffloadScanPending && + (pMac->lim.fOffloadScanP2PSearch || + pMac->lim.fOffloadScanP2PListen))) + { + pMac->lim.offload_scan_filter_p2p_result = 1; + } + pMac->lim.fOffloadScanPending = 0; pMac->lim.fOffloadScanP2PSearch = 0; pMac->lim.fOffloadScanP2PListen = 0; @@ -4903,6 +4916,7 @@ void limProcessRxScanEvent(tpAniSirGlobal pMac, void *buf) { limSendScanOffloadComplete(pMac, pScanEvent); } + pMac->lim.offload_scan_filter_p2p_result = 0; break; case SCAN_EVENT_FOREIGN_CHANNEL: if (P2P_SCAN_TYPE_LISTEN == pScanEvent->p2pScanType) diff --git a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c index 9f45f99d5a9f..1f6c40489c7e 100644 --- a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c +++ b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c @@ -1129,6 +1129,7 @@ static eHalStatus limSendHalStartScanOffloadReq(tpAniSirGlobal pMac, pMac->lim.fOffloadScanPending = 0; pMac->lim.fOffloadScanP2PSearch = 0; + pMac->lim.offload_scan_filter_p2p_result = 0; /* The tSirScanOffloadReq will reserve the space for first channel, so allocate the memory for (numChannels - 1) and uIEFieldLen */ diff --git a/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c b/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c index b2dbba39f890..86fdb9086082 100644 --- a/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c +++ b/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c @@ -782,6 +782,8 @@ limSendSmeScanRsp(tpAniSirGlobal pMac, tANI_U16 length, tANI_U16 i, bssCount; tANI_U8 *pbBuf; tSirBssDescription *pDesc; + tANI_U8 *pssidstr; + tSirMacSSid *pssid; limLog(pMac, LOG1, FL("Sending message SME_SCAN_RSP with length=%d reasonCode %s"), @@ -807,13 +809,33 @@ limSendSmeScanRsp(tpAniSirGlobal pMac, tANI_U16 length, return; } + for (i = 0; i < LIM_MAX_NUM_OF_SCAN_RESULTS; i++) { //when ptemp is not NULL it is a left over ptemp = pMac->lim.gLimCachedScanHashTable[i]; + pSirSmeScanRsp->sessionId = smesessionId; + pSirSmeScanRsp->transcationId = smetranscationId; + while(ptemp) { pbBuf = ((tANI_U8 *)pSirSmeScanRsp) + msgLen; + + if (pMac->lim.offload_scan_filter_p2p_result) + { + pssid = + (tSirMacSSid *)((tANI_U8 *)&ptemp->bssDescription.ieFields + 1); + pssidstr = pssid->ssId; + if (vos_mem_compare(pssidstr, P2P_WILDCARD_SSID, + P2P_WILDCARD_SSID_LEN)) + { + limLog(pMac, LOG1, + FL("Skipping p2p entries for eWNI_SME_SCAN_RSP")); + ptemp = ptemp->next; + continue; + } + } + if(0 == bssCount) { msgLen = sizeof(tSirSmeScanRsp) - -- cgit v1.2.3 From 35b36a92ca5c00b5b9228138c5b4ac5f41aecd06 Mon Sep 17 00:00:00 2001 From: Subhani Shaik Date: Mon, 5 Jan 2015 17:59:51 -0800 Subject: wlan: Include cnss_diag as part of the opensource wlan build. After the changes to seperate opensource wlan driver and proprietary wlan driver the cnss_diag binary is missing in opensource build packaging. This is because the binary was always built only for proprietary and since the build was same for both this issue got over looked so far. The following change is to ensure we build the tools only for opensource and never build for proprietary. Change-Id: I5e0908b0048b2fb6065659529b0b7dfd60eb6a39 CRs-Fixed: 776636 --- Android.mk | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Android.mk b/Android.mk index b766cd2e20ff..a96352f1ff15 100644 --- a/Android.mk +++ b/Android.mk @@ -67,6 +67,11 @@ LOCAL_MODULE_TAGS := debug LOCAL_MODULE_DEBUG_ENABLE := true LOCAL_MODULE_PATH := $(TARGET_OUT)/lib/modules/$(WLAN_CHIPSET) include $(DLKM_DIR)/AndroidKernelModule.mk +ifeq ($(WLAN_OPEN_SOURCE),1) +include $(WLAN_BLD_DIR)/qcacld-2.0/tools/athdiag/Android.mk +include $(WLAN_BLD_DIR)/qcacld-2.0/tools/fwdebuglog/Android.mk +include $(WLAN_BLD_DIR)/qcacld-2.0/tools/pktlog/Android.mk +endif ########################################################### # Create Symbolic link for built _wlan.ko driver from -- cgit v1.2.3 From 71b63298532987b554dabae911c8d7491d6869ca Mon Sep 17 00:00:00 2001 From: AnjaneeDevi Kapparapu Date: Thu, 8 Jan 2015 15:55:11 +0530 Subject: Cafstaging Release 4.0.10.011 Cafstaging Release 4.0.10.011 Change-Id: I11836558b512372ada317c00cd622cb244ae94e0 CRs-Fixed: 688141 --- CORE/MAC/inc/qwlan_version.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CORE/MAC/inc/qwlan_version.h b/CORE/MAC/inc/qwlan_version.h index 0ca0c414d5af..bf5e4c04d6bf 100644 --- a/CORE/MAC/inc/qwlan_version.h +++ b/CORE/MAC/inc/qwlan_version.h @@ -42,9 +42,9 @@ BRIEF DESCRIPTION: #define QWLAN_VERSION_MINOR 0 #define QWLAN_VERSION_PATCH 10 #define QWLAN_VERSION_EXTRA "" -#define QWLAN_VERSION_BUILD 010 +#define QWLAN_VERSION_BUILD 011 -#define QWLAN_VERSIONSTR "4.0.10.010" +#define QWLAN_VERSIONSTR "4.0.10.011" #define AR6320_REV1_VERSION 0x5000000 -- cgit v1.2.3