diff options
| author | Ganesh Kondabattini <ganeshk@qti.qualcomm.com> | 2016-05-13 14:48:04 +0530 |
|---|---|---|
| committer | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2016-06-16 15:40:45 +0530 |
| commit | 33ad7a78a4dc19591464aeb39bf0c28620a2dd63 (patch) | |
| tree | d02a8b7f954e7f89cef1279bfc69c025ea387027 | |
| parent | 52d932a047907ca4bd6ef7e9e869d2d48895ffb6 (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.c | 3 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c | 4 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limSerDesUtils.c | 6 | ||||
| -rw-r--r-- | CORE/SAP/src/sapFsm.c | 4 | ||||
| -rw-r--r-- | CORE/SAP/src/sapModule.c | 3 | ||||
| -rw-r--r-- | CORE/SERVICES/WMA/wma.c | 11 | ||||
| -rw-r--r-- | CORE/SME/src/csr/csrApiRoam.c | 13 |
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); |
