Merge "wlan: Drop invalid AMSDU subframe" into wlan-driver.lnx.1.0
diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h
index 0b5b8fe..bd58455 100644
--- a/CORE/HDD/inc/wlan_hdd_cfg.h
+++ b/CORE/HDD/inc/wlan_hdd_cfg.h
@@ -2110,6 +2110,11 @@
#define CFG_ENABLE_RX_STBC_MAX ( 1 )
#define CFG_ENABLE_RX_STBC_DEFAULT ( 1 )
+#define CFG_ENABLE_TX_STBC "gEnableTXSTBC"
+#define CFG_ENABLE_TX_STBC_MIN ( 0 )
+#define CFG_ENABLE_TX_STBC_MAX ( 1 )
+#define CFG_ENABLE_TX_STBC_DEFAULT ( 1 )
+
/*
* Enable/Disable vsta based on MAX Assoc limit
* defined in WCNSS_qcom_cfg.ini.
@@ -3695,6 +3700,7 @@
v_U16_t configMccParam;
v_U32_t numBuffAdvert;
v_BOOL_t enableRxSTBC;
+ v_BOOL_t enableTxSTBC;
#ifdef FEATURE_WLAN_TDLS
v_BOOL_t fEnableTDLSSupport;
v_BOOL_t fEnableTDLSImplicitTrigger;
diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c
index 02586ab..b16c3d4 100644
--- a/CORE/HDD/src/wlan_hdd_cfg.c
+++ b/CORE/HDD/src/wlan_hdd_cfg.c
@@ -2493,6 +2493,12 @@
CFG_ENABLE_RX_STBC_DEFAULT,
CFG_ENABLE_RX_STBC_MIN,
CFG_ENABLE_RX_STBC_MAX ),
+ REG_VARIABLE( CFG_ENABLE_TX_STBC, WLAN_PARAM_Integer,
+ hdd_config_t, enableTxSTBC,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_ENABLE_TX_STBC_DEFAULT,
+ CFG_ENABLE_TX_STBC_MIN,
+ CFG_ENABLE_TX_STBC_MAX ),
#ifdef FEATURE_WLAN_TDLS
REG_VARIABLE( CFG_TDLS_SUPPORT_ENABLE, WLAN_PARAM_Integer,
hdd_config_t, fEnableTDLSSupport,
@@ -5928,6 +5934,14 @@
hddLog(LOGE, "Could not pass on WNI_CFG_VHT_RXSTBC to CCM");
}
+ if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_VHT_TXSTBC,
+ pConfig->enableTxSTBC, NULL, eANI_BOOLEAN_FALSE)
+ == eHAL_STATUS_FAILURE)
+ {
+ fStatus = FALSE;
+ hddLog(LOGE, "Could not pass on WNI_CFG_VHT_TXSTBC to CCM");
+ }
+
#ifdef WLAN_SOFTAP_VSTA_FEATURE
if(pConfig->fEnableVSTASupport)
{
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c
index 70b3413..c8035f9 100644
--- a/CORE/HDD/src/wlan_hdd_cfg80211.c
+++ b/CORE/HDD/src/wlan_hdd_cfg80211.c
@@ -9503,6 +9503,11 @@
{
wlan_hdd_band_5_GHZ.ht_cap.cap &= ~IEEE80211_HT_CAP_SUP_WIDTH_20_40;
}
+ if (pCfg->enableTxSTBC)
+ {
+ wlan_hdd_band_2_4_GHZ.vht_cap.cap |= IEEE80211_VHT_CAP_TXSTBC;
+ wlan_hdd_band_5_GHZ.vht_cap.cap |= IEEE80211_VHT_CAP_TXSTBC;
+ }
/*
* In case of static linked driver at the time of driver unload,
* module exit doesn't happens. Module cleanup helps in cleaning
diff --git a/CORE/HDD/src/wlan_hdd_wmm.c b/CORE/HDD/src/wlan_hdd_wmm.c
index fbb2c32..62cc55a 100644
--- a/CORE/HDD/src/wlan_hdd_wmm.c
+++ b/CORE/HDD/src/wlan_hdd_wmm.c
@@ -1718,6 +1718,8 @@
hddWmmDscpToUpMap[24] = SME_QOS_WMM_UP_EE;
hddWmmDscpToUpMap[32] = SME_QOS_WMM_UP_CL;
hddWmmDscpToUpMap[40] = SME_QOS_WMM_UP_VI;
+/* Special case for Expedited Forwarding (DSCP 46) in default mapping */
+ hddWmmDscpToUpMap[46] = SME_QOS_WMM_UP_VO;
hddWmmDscpToUpMap[48] = SME_QOS_WMM_UP_VO;
hddWmmDscpToUpMap[56] = SME_QOS_WMM_UP_NC;
return VOS_STATUS_SUCCESS;
diff --git a/CORE/MAC/inc/wniCfg.h b/CORE/MAC/inc/wniCfg.h
index 0666539..527035c 100644
--- a/CORE/MAC/inc/wniCfg.h
+++ b/CORE/MAC/inc/wniCfg.h
@@ -1199,7 +1199,7 @@
#define WNI_CFG_VHT_TXSTBC_STAMIN 0
#define WNI_CFG_VHT_TXSTBC_STAMAX 1
-#define WNI_CFG_VHT_TXSTBC_STADEF 0
+#define WNI_CFG_VHT_TXSTBC_STADEF 1
#define WNI_CFG_VHT_RXSTBC_STAMIN 0
#define WNI_CFG_VHT_RXSTBC_STAMAX 1