diff options
| author | Deepak Dhamdhere <ddhamdhe@qca.qualcomm.com> | 2014-03-03 20:48:53 -0800 |
|---|---|---|
| committer | Akash Patel <c_akashp@qca.qualcomm.com> | 2014-03-06 18:59:49 -0800 |
| commit | 67cbbbbbedf74b559ecee695ee85904139bda81a (patch) | |
| tree | 98042b2a36301559eb1f832d77f3bd376a38d032 | |
| parent | 15d055a2d5f38ce8b76ae4a7a3d611c79deb7bf0 (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.c | 41 |
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 { |
