prima: WLAN Driver Release 3.2.0.9
diff --git a/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c b/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c
index 1d1ccd0..1ceed6b 100644
--- a/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c
+++ b/CORE/MAC/src/pe/lim/limSendSmeRspMessages.c
@@ -123,7 +123,7 @@
mmhMsg.type = msgType;
mmhMsg.bodyptr = pSirSmeRsp;
mmhMsg.bodyval = 0;
- MTRACE(macTraceMsgTx(pMac, 0, mmhMsg.type));
+ MTRACE(macTraceMsgTx(pMac, NO_SESSION, mmhMsg.type));
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT
{
@@ -201,7 +201,7 @@
mmhMsg.type = pSirSmeJoinRsp->messageType;
mmhMsg.bodyptr = pSirSmeJoinRsp;
mmhMsg.bodyval = 0;
- MTRACE(macTraceMsgTx(pMac, 0, mmhMsg.type));
+ MTRACE(macTraceMsgTx(pMac, NO_SESSION, mmhMsg.type));
limSysProcessMmhMsgApi(pMac, &mmhMsg, ePROT);
}
@@ -377,7 +377,7 @@
palCopyMemory(pMac->hHdd, pSirSmeJoinRsp->frames + psessionEntry->bcnLen + psessionEntry->assocReqLen + psessionEntry->assocRspLen, psessionEntry->ricData, pSirSmeJoinRsp->parsedRicRspLen);
palFreeMemory(pMac->hHdd, psessionEntry->ricData);
psessionEntry->ricData = NULL;
- PELOG1(limLog(pMac, LOG1, FL("RicLength=%d\n"), psessionEntry->parsedRicRspLen);)
+ PELOG1(limLog(pMac, LOG1, FL("RicLength=%d\n"), pSirSmeJoinRsp->parsedRicRspLen);)
}
#endif
#ifdef FEATURE_WLAN_CCX
@@ -409,9 +409,23 @@
if(IS_MCC_SUPPORTED && limIsLinkSuspended( pMac ) )
{
+ ePhyChanBondState htSecondaryChannelOffset;
if( psessionEntry && psessionEntry->limSmeState == eLIM_SME_LINK_EST_STATE )
{
- peSetResumeChannel( pMac, psessionEntry->currentOperChannel, 0);
+
+#ifdef WLAN_FEATURE_11AC
+ if (psessionEntry->vhtCapability)
+ {
+ /*Get 11ac cbState from 11n cbState*/
+ htSecondaryChannelOffset = limGet11ACPhyCBState(pMac,
+ psessionEntry->currentOperChannel,
+ psessionEntry->htSecondaryChannelOffset);
+ peSetResumeChannel( pMac, psessionEntry->currentOperChannel, htSecondaryChannelOffset);
+ }
+ else {
+#endif
+ peSetResumeChannel( pMac, psessionEntry->currentOperChannel, psessionEntry->htSecondaryChannelOffset);
+ }
}
else
{
@@ -571,7 +585,7 @@
mmhMsg.type = msgType;
mmhMsg.bodyptr = pSirSmeRsp;
mmhMsg.bodyval = 0;
- MTRACE(macTraceMsgTx(pMac, 0, mmhMsg.type));
+ MTRACE(macTraceMsgTx(pMac, psessionEntry->peSessionId, mmhMsg.type));
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT
limDiagEventReport(pMac, WLAN_PE_DIAG_START_BSS_RSP_EVENT, psessionEntry, (tANI_U16)resultCode, 0);
@@ -685,7 +699,7 @@
#endif
mmhMsg.bodyptr = pSirSmeScanRsp;
mmhMsg.bodyval = 0;
- MTRACE(macTraceMsgTx(pMac, 0, mmhMsg.type));
+ MTRACE(macTraceMsgTx(pMac, NO_SESSION, mmhMsg.type));
limSysProcessMmhMsgApi(pMac, &mmhMsg, ePROT);
if( eHAL_STATUS_SUCCESS != palAllocateMemory( pMac->hHdd, (void **)&pSirSmeScanRsp, allocLength))
{
@@ -755,7 +769,7 @@
mmhMsg.type = eWNI_SME_SCAN_RSP;
mmhMsg.bodyptr = pSirSmeScanRsp;
mmhMsg.bodyval = 0;
- MTRACE(macTraceMsgTx(pMac, 0, mmhMsg.type));
+ MTRACE(macTraceMsgTx(pMac, NO_SESSION, mmhMsg.type));
limSysProcessMmhMsgApi(pMac, &mmhMsg, ePROT);
PELOG2(limLog(pMac, LOG2, FL("statusCode : eSIR_SME_SUCCESS\n"));)
}
@@ -824,7 +838,7 @@
mmhMsg.bodyptr = pSirSmeScanRsp;
mmhMsg.bodyval = 0;
- MTRACE(macTraceMsgTx(pMac, 0, mmhMsg.type));
+ MTRACE(macTraceMsgTx(pMac, NO_SESSION, mmhMsg.type));
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT
limDiagEventReport(pMac, WLAN_PE_DIAG_SCAN_RSP_EVENT, NULL, (tANI_U16)resultCode, 0);
#endif //FEATURE_WLAN_DIAG_SUPPORT
@@ -834,6 +848,77 @@
} /*** limPostSmeScanRspMessage ***/
+#ifdef FEATURE_OEM_DATA_SUPPORT
+
+/**
+ * limSendSmeOemDataRsp()
+ *
+ *FUNCTION:
+ * This function is called by limProcessSmeReqMessages() to send
+ * eWNI_SME_OEM_DATA_RSP message to applications above MAC
+ * Software.
+ *
+ *PARAMS:
+ *
+ *LOGIC:
+ *
+ *ASSUMPTIONS:
+ * NA
+ *
+ *NOTE:
+ * NA
+ *
+ * @param pMac Pointer to Global MAC structure
+ * @param pMsgBuf Indicates the mlm message
+ * @param resultCode Indicates the result of previously issued
+ * eWNI_SME_OEM_DATA_RSP message
+ *
+ * @return None
+ */
+
+void limSendSmeOemDataRsp(tpAniSirGlobal pMac, tANI_U32* pMsgBuf, tSirResultCodes resultCode)
+{
+ tSirMsgQ mmhMsg;
+ tSirOemDataRsp* pSirSmeOemDataRsp=NULL;
+ tLimMlmOemDataRsp* pMlmOemDataRsp=NULL;
+ tANI_U16 msgLength;
+
+
+ //get the pointer to the mlm message
+ pMlmOemDataRsp = (tLimMlmOemDataRsp*)(pMsgBuf);
+
+ msgLength = sizeof(tSirOemDataRsp);
+
+ //now allocate memory for the char buffer
+ if(eHAL_STATUS_SUCCESS != palAllocateMemory(pMac->hHdd, (void**)&pSirSmeOemDataRsp, msgLength))
+ {
+ limLog(pMac, LOGP, FL("call to palAllocateMemory failed for pSirSmeOemDataRsp\n"));
+ return;
+ }
+
+#if defined (ANI_LITTLE_BYTE_ENDIAN)
+ sirStoreU16N((tANI_U8*)&pSirSmeOemDataRsp->length, msgLength);
+ sirStoreU16N((tANI_U8*)&pSirSmeOemDataRsp->messageType, eWNI_SME_OEM_DATA_RSP);
+#else
+ pSirSmeOemDataRsp->length = msgLength;
+ pSirSmeOemDataRsp->messageType = eWNI_SME_OEM_DATA_RSP;
+#endif
+
+ palCopyMemory(pMac->hHdd, pSirSmeOemDataRsp->oemDataRsp, pMlmOemDataRsp->oemDataRsp, OEM_DATA_RSP_SIZE);
+
+ //Now free the memory from MLM Rsp Message
+ palFreeMemory(pMac->hHdd, pMlmOemDataRsp);
+
+ mmhMsg.type = eWNI_SME_OEM_DATA_RSP;
+ mmhMsg.bodyptr = pSirSmeOemDataRsp;
+ mmhMsg.bodyval = 0;
+
+ limSysProcessMmhMsgApi(pMac, &mmhMsg, ePROT);
+
+ return;
+} /*** limSendSmeOemDataRsp ***/
+
+#endif
/**
@@ -925,7 +1010,7 @@
mmhMsg.bodyptr = pMsg;
mmhMsg.bodyval = 0;
- MTRACE(macTraceMsgTx(pMac, 0, mmhMsg.type));
+ MTRACE(macTraceMsgTx(pMac, NO_SESSION, mmhMsg.type));
limSysProcessMmhMsgApi(pMac, &mmhMsg, ePROT);
}
@@ -1110,7 +1195,10 @@
if( IS_MCC_SUPPORTED && limIsLinkSuspended( pMac ) )
{
//Resume on the first active session channel.
- peSetResumeChannel( pMac, peGetActiveSessionChannel( pMac ), 0);
+ tANI_U8 resumeChannel;
+ ePhyChanBondState resumePhyCbState;
+ peGetActiveSessionChannel( pMac, &resumeChannel, &resumePhyCbState );
+ peSetResumeChannel( pMac, resumeChannel, resumePhyCbState );
limResumeLink( pMac, limSendSmeDisassocDeauthNtfPostResume,
(tANI_U32*) pMsg );
@@ -1195,7 +1283,7 @@
mmhMsg.bodyptr = pSirSmeDisassocInd;
mmhMsg.bodyval = 0;
- MTRACE(macTraceMsgTx(pMac, 0, mmhMsg.type));
+ MTRACE(macTraceMsgTx(pMac, psessionEntry->peSessionId, mmhMsg.type));
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT
limDiagEventReport(pMac, WLAN_PE_DIAG_DISASSOC_IND_EVENT, psessionEntry, 0, (tANI_U16)pStaDs->mlmStaContext.disassocReason);
#endif //FEATURE_WLAN_DIAG_SUPPORT
@@ -1291,7 +1379,7 @@
mmhMsg.bodyptr = pSirSmeDeauthInd;
mmhMsg.bodyval = 0;
- MTRACE(macTraceMsgTx(pMac, 0, mmhMsg.type));
+ MTRACE(macTraceMsgTx(pMac, psessionEntry->peSessionId, mmhMsg.type));
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT
limDiagEventReport(pMac, WLAN_PE_DIAG_DEAUTH_IND_EVENT, psessionEntry, 0, pStaDs->mlmStaContext.cleanupTrigger);
#endif //FEATURE_WLAN_DIAG_SUPPORT
@@ -1453,7 +1541,10 @@
if( IS_MCC_SUPPORTED && limIsLinkSuspended( pMac ) )
{
//Resume on the first active session channel.
- peSetResumeChannel( pMac, peGetActiveSessionChannel( pMac ), 0);
+ tANI_U8 resumeChannel;
+ ePhyChanBondState resumePhyCbState;
+ peGetActiveSessionChannel( pMac, &resumeChannel, &resumePhyCbState );
+ peSetResumeChannel( pMac, resumeChannel, resumePhyCbState );
limResumeLink( pMac, limSendSmeDisassocDeauthNtfPostResume,
(tANI_U32*) pMsg );
@@ -1608,7 +1699,7 @@
}
- MTRACE(macTraceMsgTx(pMac, 0, mmhMsg.type));
+ MTRACE(macTraceMsgTx(pMac, NO_SESSION, mmhMsg.type));
if (eSIR_SUCCESS != limSysProcessMmhMsgApi(pMac, &mmhMsg, ePROT))
{
palFreeMemory(pMac->hHdd, (void *) pSirSmeWmStatusChangeNtf);
@@ -1692,7 +1783,7 @@
mmhMsg.type = eWNI_SME_SETCONTEXT_RSP;
mmhMsg.bodyptr = pSirSmeSetContextRsp;
mmhMsg.bodyval = 0;
- MTRACE(macTraceMsgTx(pMac, 0, mmhMsg.type));
+ MTRACE(macTraceMsgTx(pMac, psessionEntry->peSessionId, mmhMsg.type));
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT
limDiagEventReport(pMac, WLAN_PE_DIAG_SETCONTEXT_RSP_EVENT, psessionEntry, (tANI_U16)resultCode, 0);
@@ -1775,7 +1866,7 @@
mmhMsg.type = eWNI_SME_REMOVEKEY_RSP;
mmhMsg.bodyptr = pSirSmeRemoveKeyRsp;
mmhMsg.bodyval = 0;
- MTRACE(macTraceMsgTx(pMac, 0, mmhMsg.type));
+ MTRACE(macTraceMsgTx(pMac, psessionEntry->peSessionId, mmhMsg.type));
limSysProcessMmhMsgApi(pMac, &mmhMsg, ePROT);
} /*** end limSendSmeSetContextRsp() ***/
@@ -1916,7 +2007,7 @@
msgQ.type = eWNI_SME_NEIGHBOR_BSS_IND;
msgQ.bodyptr = pNewBssInd;
msgQ.bodyval = 0;
- MTRACE(macTraceMsgTx(pMac, 0, msgQ.type));
+ MTRACE(macTraceMsgTx(pMac, NO_SESSION, msgQ.type));
limSysProcessMmhMsgApi(pMac, &msgQ, ePROT);
} /*** end limSendSmeNeighborBssInd() ***/
@@ -1960,7 +2051,7 @@
mmhMsg.type = eWNI_SME_ADDTS_RSP;
mmhMsg.bodyptr = rsp;
mmhMsg.bodyval = 0;
- MTRACE(macTraceMsgTx(pMac, 0, mmhMsg.type));
+ MTRACE(macTraceMsgTx(pMac, psessionEntry->peSessionId, mmhMsg.type));
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT
limDiagEventReport(pMac, WLAN_PE_DIAG_ADDTS_RSP_EVENT, psessionEntry, 0, 0);
#endif //FEATURE_WLAN_DIAG_SUPPORT
@@ -1995,7 +2086,7 @@
mmhMsg.type = eWNI_SME_ADDTS_IND;
mmhMsg.bodyptr = rsp;
mmhMsg.bodyval = 0;
- MTRACE(macTraceMsgTx(pMac, 0, mmhMsg.type));
+ MTRACE(macTraceMsgTx(pMac, NO_SESSION, mmhMsg.type));
limSysProcessMmhMsgApi(pMac, &mmhMsg, ePROT);
}
@@ -2040,7 +2131,7 @@
mmhMsg.type = eWNI_SME_DELTS_RSP;
mmhMsg.bodyptr = rsp;
mmhMsg.bodyval = 0;
- MTRACE(macTraceMsgTx(pMac, 0, mmhMsg.type));
+ MTRACE(macTraceMsgTx(pMac, psessionEntry->peSessionId, mmhMsg.type));
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT
limDiagEventReport(pMac, WLAN_PE_DIAG_DELTS_RSP_EVENT, psessionEntry, (tANI_U16)status, 0);
#endif //FEATURE_WLAN_DIAG_SUPPORT
@@ -2080,7 +2171,7 @@
mmhMsg.type = eWNI_SME_DELTS_IND;
mmhMsg.bodyptr = rsp;
mmhMsg.bodyval = 0;
- MTRACE(macTraceMsgTx(pMac, 0, mmhMsg.type));
+ MTRACE(macTraceMsgTx(pMac, psessionEntry->peSessionId, mmhMsg.type));
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT
limDiagEventReport(pMac, WLAN_PE_DIAG_DELTS_IND_EVENT, psessionEntry, 0, 0);
#endif //FEATURE_WLAN_DIAG_SUPPORT
@@ -2143,7 +2234,7 @@
mmhMsg.bodyptr = stats;
mmhMsg.bodyval = 0;
- MTRACE(macTraceMsgTx(pMac, 0, mmhMsg.type));
+ MTRACE(macTraceMsgTx(pMac, NO_SESSION, mmhMsg.type));
limSysProcessMmhMsgApi(pMac, &mmhMsg, ePROT);
return;
@@ -2202,7 +2293,7 @@
mmhMsg.bodyptr = stats;
mmhMsg.bodyval = 0;
- MTRACE(macTraceMsgTx(pMac, 0, mmhMsg.type));
+ MTRACE(macTraceMsgTx(pMac, NO_SESSION, mmhMsg.type));
limSysProcessMmhMsgApi(pMac, &mmhMsg, ePROT);
return;
@@ -2251,7 +2342,7 @@
mmhMsg.type = msgType;
// mmhMsg.bodyval = (tANI_U32) pNewPeerInd;
mmhMsg.bodyptr = pNewPeerInd;
- MTRACE(macTraceMsgTx(pMac, 0, mmhMsg.type));
+ MTRACE(macTraceMsgTx(pMac, NO_SESSION, mmhMsg.type));
limSysProcessMmhMsgApi(pMac, &mmhMsg, ePROT);
}
@@ -2297,7 +2388,7 @@
mmhMsg.bodyval = 0;
PELOG1(limLog(pMac, LOG1, FL("Sending eWNI_PMC_EXIT_BMPS_IND to SME. \n"));)
- MTRACE(macTraceMsgTx(pMac, 0, mmhMsg.type));
+ MTRACE(macTraceMsgTx(pMac, NO_SESSION, mmhMsg.type));
#ifdef FEATURE_WLAN_DIAG_SUPPORT_LIM //FEATURE_WLAN_DIAG_SUPPORT
limDiagEventReport(pMac, WLAN_PE_DIAG_EXIT_BMPS_IND_EVENT, peGetValidPowerSaveSession(pMac), 0, (tANI_U16)reasonCode);
#endif //FEATURE_WLAN_DIAG_SUPPORT
@@ -2363,7 +2454,7 @@
mmhMsg.type = eWNI_SME_FT_AGGR_QOS_RSP;
mmhMsg.bodyptr = aggrQosRsp;
mmhMsg.bodyval = 0;
- MTRACE(macTraceMsgTx(pMac, 0, mmhMsg.type));
+ MTRACE(macTraceMsgTx(pMac, NO_SESSION, mmhMsg.type));
limSysProcessMmhMsgApi(pMac, &mmhMsg, ePROT);
return;
@@ -2388,7 +2479,7 @@
mmhMsg.type = eWNI_SME_PRE_SWITCH_CHL_IND;
mmhMsg.bodyptr = NULL;
mmhMsg.bodyval = 0;
- MTRACE(macTraceMsgTx(pMac, 0, mmhMsg.type));
+ MTRACE(macTraceMsgTx(pMac, NO_SESSION, mmhMsg.type));
limSysProcessMmhMsgApi(pMac, &mmhMsg, ePROT);
return;
@@ -2412,7 +2503,7 @@
mmhMsg.type = eWNI_SME_POST_SWITCH_CHL_IND;
mmhMsg.bodyptr = NULL;
mmhMsg.bodyval = 0;
- MTRACE(macTraceMsgTx(pMac, 0, mmhMsg.type));
+ MTRACE(macTraceMsgTx(pMac, NO_SESSION, mmhMsg.type));
limSysProcessMmhMsgApi(pMac, &mmhMsg, ePROT);
return;
@@ -2441,7 +2532,7 @@
PELOG1(limLog(pMac, LOG1, FL("msgType %s peerMacAddr %02x-%02x-%02x-%02x-%02x-%02x"
"sme session id %d\n"),"eWNI_SME_MAX_ASSOC_EXCEEDED", peerMacAddr[0], peerMacAddr[1],
peerMacAddr[2], peerMacAddr[3], peerMacAddr[4], peerMacAddr[5], smesessionId);)
- MTRACE(macTraceMsgTx(pMac, 0, mmhMsg.type));
+ MTRACE(macTraceMsgTx(pMac, NO_SESSION, mmhMsg.type));
limSysProcessMmhMsgApi(pMac, &mmhMsg, ePROT);
return;