summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDeepak Dhamdhere <ddhamdhe@qca.qualcomm.com>2014-03-03 20:48:53 -0800
committerAkash Patel <c_akashp@qca.qualcomm.com>2014-03-06 18:59:49 -0800
commit67cbbbbbedf74b559ecee695ee85904139bda81a (patch)
tree98042b2a36301559eb1f832d77f3bd376a38d032
parent15d055a2d5f38ce8b76ae4a7a3d611c79deb7bf0 (diff)
qcacld: Fill in vht_caps and ht_caps in ADD_BSS for roaming
WDA_ADD_BSS request is sent through a different path during roaming. Need to fill in vht_caps and ht_caps data structures in that path so that firmware will set correct rates and phy options after roaming. Change-Id: I72d22ef1d908eb4e71bd720a4a765cb42c873406 CRs-Fixed: 620928
-rw-r--r--CORE/MAC/src/pe/lim/limFT.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/CORE/MAC/src/pe/lim/limFT.c b/CORE/MAC/src/pe/lim/limFT.c
index c3e93ba48fe0..db5be7beafc7 100644
--- a/CORE/MAC/src/pe/lim/limFT.c
+++ b/CORE/MAC/src/pe/lim/limFT.c
@@ -470,6 +470,12 @@ tSirRetStatus limFTPrepareAddBssReq( tpAniSirGlobal pMac,
if (IS_DOT11_MODE_HT(pftSessionEntry->dot11mode) && ( pBeaconStruct->HTCaps.present ))
{
pAddBssParams->htCapable = pBeaconStruct->HTCaps.present;
+ vos_mem_copy(&pAddBssParams->staContext.capab_info,
+ &pBeaconStruct->capabilityInfo,
+ sizeof(pAddBssParams->staContext.capab_info));
+ vos_mem_copy(&pAddBssParams->staContext.ht_caps,
+ (tANI_U8 *)&pBeaconStruct->HTCaps + sizeof(tANI_U8),
+ sizeof(pAddBssParams->staContext.ht_caps));
if ( pBeaconStruct->HTInfo.present )
{
@@ -507,6 +513,41 @@ tSirRetStatus limFTPrepareAddBssReq( tpAniSirGlobal pMac,
pAddBssParams->currentExtChannel,
pftSessionEntry->apCenterChan,
pftSessionEntry);
+ pAddBssParams->staContext.vht_caps =
+ ((pBeaconStruct->VHTCaps.maxMPDULen << SIR_MAC_VHT_CAP_MAX_MPDU_LEN) |
+ (pBeaconStruct->VHTCaps.supportedChannelWidthSet <<
+ SIR_MAC_VHT_CAP_SUPP_CH_WIDTH_SET) |
+ (pBeaconStruct->VHTCaps.ldpcCodingCap <<
+ SIR_MAC_VHT_CAP_LDPC_CODING_CAP) |
+ (pBeaconStruct->VHTCaps.shortGI80MHz <<
+ SIR_MAC_VHT_CAP_SHORTGI_80MHZ) |
+ (pBeaconStruct->VHTCaps.shortGI160and80plus80MHz <<
+ SIR_MAC_VHT_CAP_SHORTGI_160_80_80MHZ) |
+ (pBeaconStruct->VHTCaps.txSTBC << SIR_MAC_VHT_CAP_TXSTBC) |
+ (pBeaconStruct->VHTCaps.rxSTBC << SIR_MAC_VHT_CAP_RXSTBC) |
+ (pBeaconStruct->VHTCaps.suBeamFormerCap <<
+ SIR_MAC_VHT_CAP_SU_BEAMFORMER_CAP) |
+ (pBeaconStruct->VHTCaps.suBeamformeeCap <<
+ SIR_MAC_VHT_CAP_SU_BEAMFORMEE_CAP) |
+ (pBeaconStruct->VHTCaps.csnofBeamformerAntSup <<
+ SIR_MAC_VHT_CAP_CSN_BEAMORMER_ANT_SUP) |
+ (pBeaconStruct->VHTCaps.numSoundingDim <<
+ SIR_MAC_VHT_CAP_NUM_SOUNDING_DIM) |
+ (pBeaconStruct->VHTCaps.muBeamformerCap <<
+ SIR_MAC_VHT_CAP_NUM_BEAM_FORMER_CAP)|
+ (pBeaconStruct->VHTCaps.muBeamformeeCap <<
+ SIR_MAC_VHT_CAP_NUM_BEAM_FORMEE_CAP) |
+ (pBeaconStruct->VHTCaps.vhtTXOPPS << SIR_MAC_VHT_CAP_TXOPPS) |
+ (pBeaconStruct->VHTCaps.htcVHTCap << SIR_MAC_VHT_CAP_HTC_CAP) |
+ (pBeaconStruct->VHTCaps.maxAMPDULenExp <<
+ SIR_MAC_VHT_CAP_MAX_AMDU_LEN_EXPO) |
+ (pBeaconStruct->VHTCaps.vhtLinkAdaptCap <<
+ SIR_MAC_VHT_CAP_LINK_ADAPT_CAP) |
+ (pBeaconStruct->VHTCaps.rxAntPattern <<
+ SIR_MAC_VHT_CAP_RX_ANTENNA_PATTERN) |
+ (pBeaconStruct->VHTCaps.txAntPattern <<
+ SIR_MAC_VHT_CAP_TX_ANTENNA_PATTERN) |
+ (pBeaconStruct->VHTCaps.reserved1 << SIR_MAC_VHT_CAP_RESERVED2));
}
else
{