summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRajeev Kumar <rajekuma@qca.qualcomm.com>2014-04-04 16:32:51 -0700
committerNandini Suresh <snandini@qca.qualcomm.com>2014-04-07 21:15:15 -0700
commitcc5ed228d930d712de454f6d874ca82a28a7bf9c (patch)
treeeffe2581d2d14f462105369e80fec3872870853e
parent8fb4fc8b81eb0b78b37dd408b946b729b9962a85 (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.c3
-rw-r--r--CORE/MAC/src/pe/lim/limProcessSmeReqMessages.c10
-rw-r--r--CORE/MAC/src/pe/lim/limUtils.c29
-rw-r--r--CORE/MAC/src/pe/lim/limUtils.h4
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);