summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGanesh Kondabattini <ganeshk@qti.qualcomm.com>2016-05-13 14:48:04 +0530
committerAnjaneedevi Kapparapu <akappa@codeaurora.org>2016-06-16 15:40:45 +0530
commit33ad7a78a4dc19591464aeb39bf0c28620a2dd63 (patch)
treed02a8b7f954e7f89cef1279bfc69c025ea387027
parent52d932a047907ca4bd6ef7e9e869d2d48895ffb6 (diff)
qcacld-2.0: Pass beacon_tx_rate to FW
Add data structures to save the beacon tx rate and changes to pass the same to FW. Change-Id: I0d9d95bb7508a1f0dfd7d560de65ae8c22931df9 CRs-Fixed: 1020078
-rw-r--r--CORE/MAC/src/pe/lim/limProcessMlmReqMessages.c3
-rw-r--r--CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c4
-rw-r--r--CORE/MAC/src/pe/lim/limSerDesUtils.c6
-rw-r--r--CORE/SAP/src/sapFsm.c4
-rw-r--r--CORE/SAP/src/sapModule.c3
-rw-r--r--CORE/SERVICES/WMA/wma.c11
-rw-r--r--CORE/SME/src/csr/csrApiRoam.c13
7 files changed, 41 insertions, 3 deletions
diff --git a/CORE/MAC/src/pe/lim/limProcessMlmReqMessages.c b/CORE/MAC/src/pe/lim/limProcessMlmReqMessages.c
index b0f951c96f1c..f00bee1b0cb5 100644
--- a/CORE/MAC/src/pe/lim/limProcessMlmReqMessages.c
+++ b/CORE/MAC/src/pe/lim/limProcessMlmReqMessages.c
@@ -1737,6 +1737,9 @@ limMlmAddBss (
pMac->roam.configParam.rx_aggregation_size;
}
pAddBssParams->dot11_mode = psessionEntry->dot11mode;
+
+ pAddBssParams->beacon_tx_rate = pMlmStartReq->beacon_tx_rate;
+
limLog(pMac, LOG2, FL("dot11_mode:%d"), pAddBssParams->dot11_mode);
msgQ.type = WDA_ADD_BSS_REQ;
diff --git a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
index 106e1d151188..b5d76046ba4b 100644
--- a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
+++ b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c
@@ -750,6 +750,8 @@ __limHandleSmeStartBssRequest(tpAniSirGlobal pMac, tANI_U32 *pMsgBuf)
&psessionEntry->shortSlotTimeSupported);
psessionEntry->isCoalesingInIBSSAllowed =
pSmeStartBssReq->isCoalesingInIBSSAllowed;
+ psessionEntry->beacon_tx_rate =
+ pSmeStartBssReq->beacon_tx_rate;
break;
case eSIR_IBSS_MODE:
psessionEntry->limSystemRole = eLIM_STA_IN_IBSS_ROLE;
@@ -1057,6 +1059,8 @@ __limHandleSmeStartBssRequest(tpAniSirGlobal pMac, tANI_U32 *pMsgBuf)
("Fail to set value for WNI_CFG_LOCAL_POWER_CONSTRAINT"));
}
+ pMlmStartReq->beacon_tx_rate = psessionEntry->beacon_tx_rate;
+
psessionEntry ->limPrevSmeState = psessionEntry->limSmeState;
psessionEntry ->limSmeState = eLIM_SME_WT_START_BSS_STATE;
MTRACE(macTrace(pMac, TRACE_CODE_SME_STATE, psessionEntry->peSessionId, psessionEntry ->limSmeState));
diff --git a/CORE/MAC/src/pe/lim/limSerDesUtils.c b/CORE/MAC/src/pe/lim/limSerDesUtils.c
index de6cb081cebe..7658b03e853a 100644
--- a/CORE/MAC/src/pe/lim/limSerDesUtils.c
+++ b/CORE/MAC/src/pe/lim/limSerDesUtils.c
@@ -695,7 +695,11 @@ limStartBssReqSerDes(tpAniSirGlobal pMac, tpSirSmeStartBssReq pStartBssReq, tANI
len--;
/* extract vendor_vht_for_24ghz_sap */
- pStartBssReq->vendor_vht_for_24ghz_sap = *pBuf++;
+ pStartBssReq->vendor_vht_for_24ghz_sap = *pBuf;
+ len -= sizeof(pStartBssReq->vendor_vht_for_24ghz_sap);
+ pBuf += sizeof(pStartBssReq->vendor_vht_for_24ghz_sap);
+
+ pStartBssReq->beacon_tx_rate = *pBuf++;
len--;
if (len)
diff --git a/CORE/SAP/src/sapFsm.c b/CORE/SAP/src/sapFsm.c
index 85c22c987061..6cd052bccd82 100644
--- a/CORE/SAP/src/sapFsm.c
+++ b/CORE/SAP/src/sapFsm.c
@@ -3613,6 +3613,10 @@ sapFsm
sapContext->csrRoamProfile.operationChannel = (tANI_U8)sapContext->channel;
sapContext->csrRoamProfile.vht_channel_width =
sapContext->vht_channel_width;
+
+ sapContext->csrRoamProfile.beacon_tx_rate =
+ sapContext->beacon_tx_rate;
+
VOS_TRACE( VOS_MODULE_ID_SAP, VOS_TRACE_LEVEL_INFO_HIGH,
"%s: notify hostapd about channel selection: %d",
__func__, sapContext->channel);
diff --git a/CORE/SAP/src/sapModule.c b/CORE/SAP/src/sapModule.c
index cd73a0899571..602de18861de 100644
--- a/CORE/SAP/src/sapModule.c
+++ b/CORE/SAP/src/sapModule.c
@@ -892,6 +892,9 @@ WLANSAP_StartBss
vos_mem_copy(pSapCtx->denyMacList, pConfig->deny_mac, sizeof(pConfig->deny_mac));
pSapCtx->nDenyMac = pConfig->num_deny_mac;
sapSortMacList(pSapCtx->denyMacList, pSapCtx->nDenyMac);
+
+ pSapCtx->beacon_tx_rate = pConfig->beacon_tx_rate;
+
/* Fill in the event structure for FSM */
sapEvent.event = eSAP_HDD_START_INFRA_BSS;
sapEvent.params = 0;//pSapPhysLinkCreate
diff --git a/CORE/SERVICES/WMA/wma.c b/CORE/SERVICES/WMA/wma.c
index 741be69028a8..f7a684c970b1 100644
--- a/CORE/SERVICES/WMA/wma.c
+++ b/CORE/SERVICES/WMA/wma.c
@@ -12504,8 +12504,16 @@ VOS_STATUS wma_vdev_start(tp_wma_handle wma,
}
}
- cmd->beacon_interval = req->beacon_intval;
+ cmd->beacon_interval = req->beacon_intval;
cmd->dtim_period = req->dtim_period;
+
+ if (req->beacon_tx_rate) {
+ WMA_LOGI("%s[%d]: beacon_tx_rate present [%hu]",
+ __func__, __LINE__, req->beacon_tx_rate);
+ cmd->flags |= WMI_UNIFIED_VDEV_START_BCN_TX_RATE_PRESENT;
+ cmd->bcn_tx_rate = req->beacon_tx_rate;
+ }
+
/* FIXME: Find out min, max and regulatory power levels */
WMI_SET_CHANNEL_REG_POWER(chan, req->max_txpow);
WMI_SET_CHANNEL_MAX_TX_POWER(chan, req->max_txpow);
@@ -15680,6 +15688,7 @@ static void wma_add_bss_ap_mode(tp_wma_handle wma, tpAddBssParams add_bss)
req.beacon_intval = add_bss->beaconInterval;
req.dtim_period = add_bss->dtimPeriod;
+ req.beacon_tx_rate = add_bss->beacon_tx_rate;
req.hidden_ssid = add_bss->bHiddenSSIDEn;
req.is_dfs = add_bss->bSpectrumMgtEnabled;
req.oper_mode = BSS_OPERATIONAL_MODE_AP;
diff --git a/CORE/SME/src/csr/csrApiRoam.c b/CORE/SME/src/csr/csrApiRoam.c
index 055599fcaee0..89761bf56a00 100644
--- a/CORE/SME/src/csr/csrApiRoam.c
+++ b/CORE/SME/src/csr/csrApiRoam.c
@@ -6968,6 +6968,9 @@ eHalStatus csrRoamCopyProfile(tpAniSirGlobal pMac, tCsrRoamProfile *pDstProfile,
vos_mem_copy(&pDstProfile->addIeParams,
&pSrcProfile->addIeParams,
sizeof(tSirAddIeParams));
+
+ pDstProfile->beacon_tx_rate = pSrcProfile->beacon_tx_rate;
+
}while(0);
if(!HAL_STATUS_SUCCESS(status))
@@ -12896,6 +12899,9 @@ eHalStatus csrRoamIssueStartBss( tpAniSirGlobal pMac, tANI_U32 sessionId, tCsrRo
pProfile->addIeParams.probeRespBCNData_buff;
}
pParam->sap_dot11mc = pProfile->sap_dot11mc;
+
+ pParam->beacon_tx_rate = pProfile->beacon_tx_rate;
+
// When starting an IBSS, start on the channel from the Profile.
status = csrSendMBStartBssReqMsg( pMac, sessionId, pProfile->BSSType, pParam, pBssDesc );
return (status);
@@ -15375,7 +15381,12 @@ eHalStatus csrSendMBStartBssReqMsg( tpAniSirGlobal pMac, tANI_U32 sessionId, eCs
*pBuf++ = (tANI_U8)pMac->roam.configParam.obssEnabled;
*pBuf++ = (tANI_U8)pParam->sap_dot11mc;
- *pBuf++ = (tANI_U8)pMac->roam.configParam.vendor_vht_for_24ghz_sap;
+
+ vos_mem_copy(pBuf, &pMac->roam.configParam.vendor_vht_for_24ghz_sap,
+ sizeof(pMac->roam.configParam.vendor_vht_for_24ghz_sap));
+ pBuf += sizeof(pMac->roam.configParam.vendor_vht_for_24ghz_sap);
+
+ *pBuf++ = (tANI_U8)pParam->beacon_tx_rate;
msgLen = (tANI_U16)(sizeof(tANI_U32 ) + (pBuf - wTmpBuf)); //msg_header + msg
pMsg->length = pal_cpu_to_be16(msgLen);