summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRajesh Chauhan <rajeshc@qca.qualcomm.com>2014-01-22 10:29:54 -0800
committerPrakash Dhavali <pdhavali@qca.qualcomm.com>2014-01-29 12:06:38 -0800
commitd13c53d57b3535d4920914736b4b0369cccdc5ec (patch)
tree049a8726435f81b1246739ebea1c4c1d7406ce68
parent8f3607eeddd2340f1f2c15ea2a3683c3d563a25a (diff)
qcacld: Fix issue in ht/vht caps in change sta for a TDLS peer
Fill ht/vht capability info in sta param in change sta operation so that capability info can be correctly passed down to target in peer assoc for a TDLS peer sta. Change-Id: I5e2b24aa39c9d42c7f83b1d9a1a228d12463b94f CRs-Fixed: 605219
-rw-r--r--CORE/MAC/src/include/dphGlobal.h5
-rw-r--r--CORE/MAC/src/pe/lim/limAssocUtils.c12
-rw-r--r--CORE/MAC/src/pe/lim/limProcessTdls.c2
3 files changed, 19 insertions, 0 deletions
diff --git a/CORE/MAC/src/include/dphGlobal.h b/CORE/MAC/src/include/dphGlobal.h
index 3a6ccaf6d78d..af0cb88ab300 100644
--- a/CORE/MAC/src/include/dphGlobal.h
+++ b/CORE/MAC/src/include/dphGlobal.h
@@ -605,6 +605,11 @@ typedef struct sDphHashNode
tANI_U8 htLdpcCapable;
tANI_U8 vhtLdpcCapable;
+#ifdef FEATURE_WLAN_TDLS
+ tANI_U16 ht_caps;
+ tANI_U32 vht_caps;
+#endif
+
/* When a station with already an existing dph entry tries to
* associate again, the old dph entry will be zeroed out except
diff --git a/CORE/MAC/src/pe/lim/limAssocUtils.c b/CORE/MAC/src/pe/lim/limAssocUtils.c
index aaa76daec0e5..cf1c486c1b7d 100644
--- a/CORE/MAC/src/pe/lim/limAssocUtils.c
+++ b/CORE/MAC/src/pe/lim/limAssocUtils.c
@@ -2600,6 +2600,18 @@ limAddSta(
(vht_caps.reserved1 << SIR_MAC_VHT_CAP_RESERVED2));
}
+#ifdef FEATURE_WLAN_TDLS
+ if (STA_ENTRY_TDLS_PEER == pStaDs->staType)
+ {
+ pAddStaParams->ht_caps = pStaDs->ht_caps;
+ pAddStaParams->vht_caps = pStaDs->vht_caps;
+
+ VOS_TRACE(VOS_MODULE_ID_PE, VOS_TRACE_LEVEL_INFO,
+ "%s: Sta type is TDLS_PEER, ht_caps: 0x%x, vht_caps: 0x%x",
+ __func__, pAddStaParams->ht_caps, pAddStaParams->vht_caps);
+ }
+#endif
+
//Disable BA. It will be set as part of ADDBA negotiation.
for( i = 0; i < STACFG_MAX_TC; i++ )
{
diff --git a/CORE/MAC/src/pe/lim/limProcessTdls.c b/CORE/MAC/src/pe/lim/limProcessTdls.c
index bca20e832756..7082ee64da26 100644
--- a/CORE/MAC/src/pe/lim/limProcessTdls.c
+++ b/CORE/MAC/src/pe/lim/limProcessTdls.c
@@ -2771,6 +2771,7 @@ static void limTdlsUpdateHashNodeInfo(tpAniSirGlobal pMac, tDphHashNode *pStaDs,
htCaps->supportedMCSSet);
pStaDs->baPolicyFlag = 0xFF;
pMac->lim.gLimTdlsLinkMode = TDLS_LINK_MODE_N ;
+ pStaDs->ht_caps = pTdlsAddStaReq->htCap.capInfo;
}
else
{
@@ -2800,6 +2801,7 @@ static void limTdlsUpdateHashNodeInfo(tpAniSirGlobal pMac, tDphHashNode *pStaDs,
pStaDs->vhtBeamFormerCapable= pVhtCaps->suBeamFormerCap;
// TODO , is it necessary , Sunil???
pMac->lim.gLimTdlsLinkMode = TDLS_LINK_MODE_AC;
+ pStaDs->vht_caps = pTdlsAddStaReq->vhtCap.vhtCapInfo;
}
else
{