diff options
| author | Rajeev Kumar <rajekuma@qca.qualcomm.com> | 2014-04-04 16:32:51 -0700 |
|---|---|---|
| committer | Nandini Suresh <snandini@qca.qualcomm.com> | 2014-04-07 21:15:15 -0700 |
| commit | cc5ed228d930d712de454f6d874ca82a28a7bf9c (patch) | |
| tree | effe2581d2d14f462105369e80fec3872870853e | |
| parent | 8fb4fc8b81eb0b78b37dd408b946b729b9962a85 (diff) | |
qcacld: Fix to make G-Short-Slot time bit zero in 5G band
Pronto to CLD propagation
G-short-slot time bit is set in 5G band which is incorrect
according to spec. so with this fix we are disabing this bit
in 5G band.
Change-Id: I6e92b1174eda0a1e32c779a168e09cf6a71c04c3
CRs-Fixed: 643149
| -rw-r--r-- | CORE/MAC/src/pe/lim/limProcessCfgUpdates.c | 3 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c | 10 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limUtils.c | 29 | ||||
| -rw-r--r-- | CORE/MAC/src/pe/lim/limUtils.h | 4 |
4 files changed, 27 insertions, 19 deletions
diff --git a/CORE/MAC/src/pe/lim/limProcessCfgUpdates.c b/CORE/MAC/src/pe/lim/limProcessCfgUpdates.c index 62c600421eba..9aefc5a8c29c 100644 --- a/CORE/MAC/src/pe/lim/limProcessCfgUpdates.c +++ b/CORE/MAC/src/pe/lim/limProcessCfgUpdates.c @@ -667,7 +667,8 @@ limApplyConfiguration(tpAniSirGlobal pMac,tpPESession psessionEntry) limUpdateConfig(pMac,psessionEntry); - psessionEntry->shortSlotTimeSupported = limGetShortSlotFromPhyMode(pMac, psessionEntry, phyMode); + limGetShortSlotFromPhyMode(pMac, psessionEntry, phyMode, + &psessionEntry->shortSlotTimeSupported); limSetCfgProtection(pMac, psessionEntry); diff --git a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c index 5a10284751e4..9512b02c16c4 100644 --- a/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c +++ b/CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c @@ -679,15 +679,17 @@ __limHandleSmeStartBssRequest(tpAniSirGlobal pMac, tANI_U32 *pMsgBuf) } psessionEntry->ssidHidden = pSmeStartBssReq->ssidHidden; psessionEntry->wps_state = pSmeStartBssReq->wps_state; - psessionEntry->shortSlotTimeSupported = limGetShortSlotFromPhyMode(pMac, psessionEntry, psessionEntry->gLimPhyMode); + limGetShortSlotFromPhyMode(pMac, psessionEntry, + psessionEntry->gLimPhyMode, + &psessionEntry->shortSlotTimeSupported); psessionEntry->isCoalesingInIBSSAllowed = pSmeStartBssReq->isCoalesingInIBSSAllowed; break; case eSIR_IBSS_MODE: psessionEntry->limSystemRole = eLIM_STA_IN_IBSS_ROLE; - psessionEntry->shortSlotTimeSupported = - limGetShortSlotFromPhyMode(pMac, psessionEntry, - psessionEntry->gLimPhyMode); + limGetShortSlotFromPhyMode(pMac, psessionEntry, + psessionEntry->gLimPhyMode, + &psessionEntry->shortSlotTimeSupported); // initialize to "OPEN". will be updated upon key installation psessionEntry->encryptType = eSIR_ED_NONE; diff --git a/CORE/MAC/src/pe/lim/limUtils.c b/CORE/MAC/src/pe/lim/limUtils.c index d8c67fa99763..56ee50dbb01b 100644 --- a/CORE/MAC/src/pe/lim/limUtils.c +++ b/CORE/MAC/src/pe/lim/limUtils.c @@ -7772,41 +7772,44 @@ tANI_BOOLEAN limCheckMembershipUserPosition( tpAniSirGlobal pMac, tpPESession ps } #endif -tANI_U8 limGetShortSlotFromPhyMode(tpAniSirGlobal pMac, tpPESession psessionEntry, tANI_U32 phyMode) +void limGetShortSlotFromPhyMode(tpAniSirGlobal pMac, tpPESession psessionEntry, + tANI_U32 phyMode, tANI_U8 *pShortSlotEnabled) { tANI_U8 val=0; - if (phyMode == WNI_CFG_PHY_MODE_11A) - { - // 11a mode always uses short slot - // Check this since some APs in 11a mode broadcast long slot in their beacons. As per standard, always use what PHY mandates. - val = true; - } - else if (phyMode == WNI_CFG_PHY_MODE_11G) + //only 2.4G band should have short slot enable, rest it should be default + if (phyMode == WNI_CFG_PHY_MODE_11G) { + /* short slot is default in all other modes */ if ((psessionEntry->pePersona == VOS_STA_SAP_MODE) || (psessionEntry->pePersona == VOS_IBSS_MODE) || (psessionEntry->pePersona == VOS_P2P_GO_MODE)) { val = true; } - // Program Polaris based on AP capability - if (psessionEntry->limMlmState == eLIM_MLM_WT_JOIN_BEACON_STATE) + { // Joining BSS. val = SIR_MAC_GET_SHORT_SLOT_TIME( psessionEntry->limCurrentBssCaps); + } else if (psessionEntry->limMlmState == eLIM_MLM_WT_REASSOC_RSP_STATE) + { // Reassociating with AP. val = SIR_MAC_GET_SHORT_SLOT_TIME( psessionEntry->limReassocBssCaps); + } } - else // if (phyMode == WNI_CFG_PHY_MODE_11B) - use this if another phymode is added later ON + else { - // Will reach here in 11b case + /* + * 11B does not short slot and short slot is default + * for 11A mode. Hence, not need to set this bit + */ val = false; } + limLog(pMac, LOG1, FL("phyMode = %u shortslotsupported = %u"), phyMode, val); - return val; + *pShortSlotEnabled = val; } void limUtilsframeshtons(tpAniSirGlobal pCtx, diff --git a/CORE/MAC/src/pe/lim/limUtils.h b/CORE/MAC/src/pe/lim/limUtils.h index b926d720bbae..6fea9f84ca11 100644 --- a/CORE/MAC/src/pe/lim/limUtils.h +++ b/CORE/MAC/src/pe/lim/limUtils.h @@ -490,7 +490,9 @@ void limTdlsDelLinkPeer(tpAniSirGlobal pMac, tSirMacAddr peerMac); void limStartTdlsTimer(tpAniSirGlobal pMac, tANI_U8 sessionId, TX_TIMER *timer, tANI_U32 timerId, tANI_U16 timerType, tANI_U32 timerMsg); #endif -tANI_U8 limGetShortSlotFromPhyMode(tpAniSirGlobal pMac, tpPESession psessionEntry, tANI_U32 phyMode); + +void limGetShortSlotFromPhyMode(tpAniSirGlobal pMac, tpPESession psessionEntry, tANI_U32 phyMode, + tANI_U8 *pShortSlotEnable); void limCleanUpDisassocDeauthReq(tpAniSirGlobal pMac, tANI_U8 *staMac, tANI_BOOLEAN cleanRxPath); |
