Disable LDPC in sta mode when AP is TXBF capable
In STA mode when both LDPC and TXBF are enabled, throughput is
not stable.As a workaround, till root cause is identified disable
LDPC when AP is TXBF capable.
Change-Id: I3e04aa0c580624cc0b182d464fd08bb70ee423da
CRs-fixed: 451252
diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h
index 6b05dc4..698e8cd 100644
--- a/CORE/HDD/inc/wlan_hdd_cfg.h
+++ b/CORE/HDD/inc/wlan_hdd_cfg.h
@@ -1597,6 +1597,7 @@
#define CFG_VHT_SU_BEAMFORMEE_CAP_FEATURE_DEFAULT ( WNI_CFG_VHT_SU_BEAMFORMEE_CAP_STADEF )
#endif
+
/*
* SAP ALLOW All Channels
*/
@@ -1606,6 +1607,12 @@
#define CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_DEFAULT ( 0 )
+#ifdef WLAN_FEATURE_11AC
+#define CFG_DISABLE_LDPC_WITH_TXBF_AP "gDisableLDPCWithTxbfAP"
+#define CFG_DISABLE_LDPC_WITH_TXBF_AP_MIN ( 0 )
+#define CFG_DISABLE_LDPC_WITH_TXBF_AP_MAX ( 1 )
+#define CFG_DISABLE_LDPC_WITH_TXBF_AP_DEFAULT ( 1 )
+#endif
/*---------------------------------------------------------------------------
Type declarations
-------------------------------------------------------------------------*/
@@ -1955,6 +1962,7 @@
#endif
v_U8_t scanAgingTimeout;
v_BOOL_t enableTxLdpc;
+ v_U8_t disableLDPCWithTxbfAP;
v_U8_t enableMCCAdaptiveScheduler;
v_BOOL_t isAndroidPsEn;
v_BOOL_t sapAllowAllChannel;
diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c
index 581fc02..0f908a9 100644
--- a/CORE/HDD/src/wlan_hdd_cfg.c
+++ b/CORE/HDD/src/wlan_hdd_cfg.c
@@ -1988,6 +1988,14 @@
CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_DEFAULT,
CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_MIN,
CFG_SAP_ALLOW_ALL_CHANNEL_PARAM_MAX ),
+#ifdef WLAN_FEATURE_11AC
+REG_VARIABLE( CFG_DISABLE_LDPC_WITH_TXBF_AP, WLAN_PARAM_Integer,
+ hdd_config_t, disableLDPCWithTxbfAP,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_DISABLE_LDPC_WITH_TXBF_AP_DEFAULT,
+ CFG_DISABLE_LDPC_WITH_TXBF_AP_MIN,
+ CFG_DISABLE_LDPC_WITH_TXBF_AP_MAX ),
+#endif
};
/*
@@ -3437,6 +3445,12 @@
fStatus = FALSE;
hddLog(LOGE, "Could not pass on WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED to CCM\n");
}
+ if (ccmCfgSetInt(pHddCtx->hHal, WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP, pConfig->disableLDPCWithTxbfAP,
+ NULL, eANI_BOOLEAN_FALSE)==eHAL_STATUS_FAILURE)
+ {
+ fStatus = FALSE;
+ hddLog(LOGE, "Could not pass on WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP to CCM\n");
+ }
return fStatus;
}
diff --git a/CORE/MAC/inc/aniGlobal.h b/CORE/MAC/inc/aniGlobal.h
index c726bb6..02a1c8e 100644
--- a/CORE/MAC/inc/aniGlobal.h
+++ b/CORE/MAC/inc/aniGlobal.h
@@ -713,6 +713,7 @@
// admission control policy information
tLimAdmitPolicyInfo admitPolicyInfo;
vos_lock_t lkPeGlobalLock;
+ tANI_U8 disableLDPCWithTxbfAP;
diff --git a/CORE/MAC/inc/wniCfgAp.h b/CORE/MAC/inc/wniCfgAp.h
index b1d7785..6f3654a 100644
--- a/CORE/MAC/inc/wniCfgAp.h
+++ b/CORE/MAC/inc/wniCfgAp.h
@@ -354,9 +354,9 @@
#define WNI_CFG_AP_KEEP_ALIVE_TIMEOUT 289
#define WNI_CFG_GO_KEEP_ALIVE_TIMEOUT 290
#define WNI_CFG_ENABLE_MC_ADDR_LIST 291
-#define WNI_CFG_ENABLE_UC_FILTER 292
-#define WNI_CFG_ENABLE_LPWR_IMG_TRANSITION 293
-#define WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED 294
+#define WNI_CFG_ENABLE_LPWR_IMG_TRANSITION 292
+#define WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED 293
+#define WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP 294
/*
* String parameter lengths
@@ -1838,11 +1838,11 @@
#define WNI_CFG_NUM_BUFF_ADVERT_STAMIN 0
#define WNI_CFG_NUM_BUFF_ADVERT_STAMAX 128
-#define WNI_CFG_NUM_BUFF_ADVERT_STADEF 64
+#define WNI_CFG_NUM_BUFF_ADVERT_STADEF 45
#define WNI_CFG_NUM_BUFF_ADVERT_APMIN 0
#define WNI_CFG_NUM_BUFF_ADVERT_APMAX 128
-#define WNI_CFG_NUM_BUFF_ADVERT_APDEF 64
+#define WNI_CFG_NUM_BUFF_ADVERT_APDEF 45
#define WNI_CFG_MAX_RX_AMPDU_FACTOR_STAMIN 0
#define WNI_CFG_MAX_RX_AMPDU_FACTOR_STAMAX 3
@@ -2435,14 +2435,6 @@
#define WNI_CFG_ENABLE_MC_ADDR_LIST_APMAX 1
#define WNI_CFG_ENABLE_MC_ADDR_LIST_APDEF 0
-#define WNI_CFG_ENABLE_UC_FILTER_STAMIN 0
-#define WNI_CFG_ENABLE_UC_FILTER_STAMAX 1
-#define WNI_CFG_ENABLE_UC_FILTER_STADEF 0
-
-#define WNI_CFG_ENABLE_UC_FILTER_APMIN 0
-#define WNI_CFG_ENABLE_UC_FILTER_APMAX 1
-#define WNI_CFG_ENABLE_UC_FILTER_APDEF 0
-
#define WNI_CFG_ENABLE_LPWR_IMG_TRANSITION_STAMIN 0
#define WNI_CFG_ENABLE_LPWR_IMG_TRANSITION_STAMAX 1
#define WNI_CFG_ENABLE_LPWR_IMG_TRANSITION_STADEF 0
@@ -2459,6 +2451,14 @@
#define WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED_APMAX 1
#define WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED_APDEF 0
+#define WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP_STAMIN 0
+#define WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP_STAMAX 1
+#define WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP_STADEF 0
+
+#define WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP_APMIN 0
+#define WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP_APMAX 1
+#define WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP_APDEF 0
+
#define CFG_PARAM_MAX_NUM 295
#define CFG_AP_IBUF_MAX_SIZE 234
#define CFG_AP_SBUF_MAX_SIZE 3422
diff --git a/CORE/MAC/inc/wniCfgSta.h b/CORE/MAC/inc/wniCfgSta.h
index e793507..3e7fa52 100644
--- a/CORE/MAC/inc/wniCfgSta.h
+++ b/CORE/MAC/inc/wniCfgSta.h
@@ -348,9 +348,9 @@
#define WNI_CFG_AP_KEEP_ALIVE_TIMEOUT 289
#define WNI_CFG_GO_KEEP_ALIVE_TIMEOUT 290
#define WNI_CFG_ENABLE_MC_ADDR_LIST 291
-#define WNI_CFG_ENABLE_UC_FILTER 292
-#define WNI_CFG_ENABLE_LPWR_IMG_TRANSITION 293
-#define WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED 294
+#define WNI_CFG_ENABLE_LPWR_IMG_TRANSITION 292
+#define WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED 293
+#define WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP 294
/*
* String parameter lengths
@@ -1255,7 +1255,7 @@
#define WNI_CFG_NUM_BUFF_ADVERT_STAMIN 0
#define WNI_CFG_NUM_BUFF_ADVERT_STAMAX 128
-#define WNI_CFG_NUM_BUFF_ADVERT_STADEF 64
+#define WNI_CFG_NUM_BUFF_ADVERT_STADEF 45
#define WNI_CFG_MAX_RX_AMPDU_FACTOR_STAMIN 0
#define WNI_CFG_MAX_RX_AMPDU_FACTOR_STAMAX 3
@@ -1588,10 +1588,6 @@
#define WNI_CFG_ENABLE_MC_ADDR_LIST_STAMAX 1
#define WNI_CFG_ENABLE_MC_ADDR_LIST_STADEF 0
-#define WNI_CFG_ENABLE_UC_FILTER_STAMIN 0
-#define WNI_CFG_ENABLE_UC_FILTER_STAMAX 1
-#define WNI_CFG_ENABLE_UC_FILTER_STADEF 0
-
#define WNI_CFG_ENABLE_LPWR_IMG_TRANSITION_STAMIN 0
#define WNI_CFG_ENABLE_LPWR_IMG_TRANSITION_STAMAX 1
#define WNI_CFG_ENABLE_LPWR_IMG_TRANSITION_STADEF 0
@@ -1600,6 +1596,10 @@
#define WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED_STAMAX 1
#define WNI_CFG_ENABLE_MCC_ADAPTIVE_SCHED_STADEF 0
+#define WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP_STAMIN 0
+#define WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP_STAMAX 1
+#define WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP_STADEF 0
+
#define CFG_PARAM_MAX_NUM 295
#define CFG_STA_IBUF_MAX_SIZE 229
#define CFG_STA_SBUF_MAX_SIZE 3388
diff --git a/CORE/MAC/src/cfg/cfgParamName.c b/CORE/MAC/src/cfg/cfgParamName.c
index 4f403dd..66282dd 100644
--- a/CORE/MAC/src/cfg/cfgParamName.c
+++ b/CORE/MAC/src/cfg/cfgParamName.c
@@ -345,9 +345,9 @@
(unsigned char *)"AP_KEEP_ALIVE_TIMEOUT",
(unsigned char *)"GO_KEEP_ALIVE_TIMEOUT",
(unsigned char *)"ENABLE_MC_ADDR_LIST",
- (unsigned char *)"ENABLE_UC_FILTER",
(unsigned char *)"ENABLE_LPWR_IMG_TRANSITION",
(unsigned char *)"ENABLE_MCC_ADAPTIVE_SCHED",
+ (unsigned char *)"DISABLE_LDPC_WITH_TXBF_AP",
};
diff --git a/CORE/MAC/src/cfg/cfgUtil/cfg.txt b/CORE/MAC/src/cfg/cfgUtil/cfg.txt
index 1105cf9..afd7828 100644
--- a/CORE/MAC/src/cfg/cfgUtil/cfg.txt
+++ b/CORE/MAC/src/cfg/cfgUtil/cfg.txt
@@ -4462,3 +4462,15 @@
V RW NP
NONE
0 1 0
+*
+*Disable LDPC in STA mode when AP is TXBF capable
+*
+*
+*
+WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP I 4 0
+V RW NP
+NONE
+0 1 0
+V RW NP
+NONE
+0 1 0
diff --git a/CORE/MAC/src/pe/lim/limApi.c b/CORE/MAC/src/pe/lim/limApi.c
index 2d1605f..a49a1ba 100644
--- a/CORE/MAC/src/pe/lim/limApi.c
+++ b/CORE/MAC/src/pe/lim/limApi.c
@@ -644,6 +644,11 @@
/* This was initially done after resume notification from HAL. Now, DAL is
started before PE so this can be done here */
handleHTCapabilityandHTInfo(pMac, NULL);
+ if(wlan_cfgGetInt(pMac, WNI_CFG_DISABLE_LDPC_WITH_TXBF_AP,(tANI_U32 *) &pMac->lim.disableLDPCWithTxbfAP) != eSIR_SUCCESS)
+ {
+ limLog(pMac, LOGP, FL("cfg get disableLDPCWithTxbfAP failed\n"));
+ return eSIR_FAILURE;
+ }
return eSIR_SUCCESS;
}
diff --git a/CORE/MAC/src/pe/lim/limAssocUtils.c b/CORE/MAC/src/pe/lim/limAssocUtils.c
index e72b0ea..79ea0d0 100644
--- a/CORE/MAC/src/pe/lim/limAssocUtils.c
+++ b/CORE/MAC/src/pe/lim/limAssocUtils.c
@@ -2248,8 +2248,16 @@
{
/* peer STA get the LDPC capability from pStaDs, which populated from
* HT/VHT capability*/
- pAddStaParams->htLdpcCapable = pStaDs->htLdpcCapable;
- pAddStaParams->vhtLdpcCapable = pStaDs->vhtLdpcCapable;
+ if(pAddStaParams->vhtTxBFCapable && pMac->lim.disableLDPCWithTxbfAP)
+ {
+ pAddStaParams->htLdpcCapable = 0;
+ pAddStaParams->vhtLdpcCapable = 0;
+ }
+ else
+ {
+ pAddStaParams->htLdpcCapable = pStaDs->htLdpcCapable;
+ pAddStaParams->vhtLdpcCapable = pStaDs->vhtLdpcCapable;
+ }
}
else if( STA_ENTRY_SELF == pStaDs->staType)
{
@@ -3338,8 +3346,16 @@
pAddBssParams->staContext.fShortGI20Mhz = (tANI_U8)pAssocRsp->HTCaps.shortGI20MHz;
pAddBssParams->staContext.fShortGI40Mhz = (tANI_U8)pAssocRsp->HTCaps.shortGI40MHz;
pAddBssParams->staContext.maxAmpduSize= pAssocRsp->HTCaps.maxRxAMPDUFactor;
- pAddBssParams->staContext.htLdpcCapable = (tANI_U8)pAssocRsp->HTCaps.advCodingCap;
- pAddBssParams->staContext.vhtLdpcCapable = (tANI_U8)pAssocRsp->VHTCaps.ldpcCodingCap;
+ if( pAddBssParams->staContext.vhtTxBFCapable && pMac->lim.disableLDPCWithTxbfAP )
+ {
+ pAddBssParams->staContext.htLdpcCapable = 0;
+ pAddBssParams->staContext.vhtLdpcCapable = 0;
+ }
+ else
+ {
+ pAddBssParams->staContext.htLdpcCapable = (tANI_U8)pAssocRsp->HTCaps.advCodingCap;
+ pAddBssParams->staContext.vhtLdpcCapable = (tANI_U8)pAssocRsp->VHTCaps.ldpcCodingCap;
+ }
if( pBeaconStruct->HTInfo.present )
pAddBssParams->staContext.rifsMode = pAssocRsp->HTInfo.rifsMode;
@@ -3623,8 +3639,16 @@
pAddBssParams->staContext.fShortGI20Mhz = (tANI_U8)pBeaconStruct->HTCaps.shortGI20MHz;
pAddBssParams->staContext.fShortGI40Mhz = (tANI_U8)pBeaconStruct->HTCaps.shortGI40MHz;
pAddBssParams->staContext.maxAmpduSize= pBeaconStruct->HTCaps.maxRxAMPDUFactor;
- pAddBssParams->staContext.htLdpcCapable = (tANI_U8)pBeaconStruct->HTCaps.advCodingCap;
- pAddBssParams->staContext.vhtLdpcCapable = (tANI_U8)pBeaconStruct->VHTCaps.ldpcCodingCap;
+ if( pAddBssParams->staContext.vhtTxBFCapable && pMac->lim.disableLDPCWithTxbfAP )
+ {
+ pAddBssParams->staContext.htLdpcCapable = 0;
+ pAddBssParams->staContext.vhtLdpcCapable = 0;
+ }
+ else
+ {
+ pAddBssParams->staContext.htLdpcCapable = (tANI_U8)pBeaconStruct->HTCaps.advCodingCap;
+ pAddBssParams->staContext.vhtLdpcCapable = (tANI_U8)pBeaconStruct->VHTCaps.ldpcCodingCap;
+ }
if( pBeaconStruct->HTInfo.present )
pAddBssParams->staContext.rifsMode = pBeaconStruct->HTInfo.rifsMode;
diff --git a/firmware_bin/WCNSS_qcom_cfg.ini b/firmware_bin/WCNSS_qcom_cfg.ini
index 32dd9ce..df4b739 100644
--- a/firmware_bin/WCNSS_qcom_cfg.ini
+++ b/firmware_bin/WCNSS_qcom_cfg.ini
@@ -374,7 +374,8 @@
#If set to 1 Android Framwrok control the Power saving mechanism
isAndroidPsEn=0
-
+#disable LDPC in STA mode if the AP is TXBF capable
+gDisableLDPCWithTxbfAP=1
END
# Note: Configuration parser would not read anything past the END marker
diff --git a/pronto/firmware_bin/WCNSS_qcom_cfg.ini b/pronto/firmware_bin/WCNSS_qcom_cfg.ini
new file mode 100644
index 0000000..7cbc71e
--- /dev/null
+++ b/pronto/firmware_bin/WCNSS_qcom_cfg.ini
@@ -0,0 +1,358 @@
+# This file allows user to override the factory
+
+# defaults for the WLAN Driver
+
+
+# Enable IMPS or not
+gEnableImps=1
+
+# Enable/Disable Idle Scan
+
+gEnableIdleScan=0
+
+
+# Increase sleep duration (seconds) during IMPS
+# 0 implies no periodic wake up from IMPS. Periodic wakeup is
+# unnecessary if Idle Scan is disabled.
+gImpsModSleepTime=0
+
+
+# Enable BMPS or not
+gEnableBmps=1
+
+# Enable suspend or not
+
+# 1: Enable standby, 2: Enable Deep sleep, 3: Enable Mcast/Bcast Filter
+
+gEnableSuspend=3
+
+
+# Phy Mode (auto, b, g, n, etc)
+# Valid values are 0-9, with 0 = Auto, 4 = 11n, 9 = 11ac
+gDot11Mode=0
+
+
+# Handoff Enable(1) Disable(0)
+
+gEnableHandoff=0
+
+
+# CSR Roaming Enable(1) Disable(0)
+
+gRoamingTime=0
+
+
+# Assigned MAC Addresses - This will be used until NV items are in place
+
+# Each byte of MAC address is represented in Hex format as XX
+
+Intf0MacAddress=000AF58989FF
+Intf1MacAddress=000AF58989FE
+Intf2MacAddress=000AF58989FD
+
+Intf3MacAddress=000AF58989FC
+
+
+# UAPSD service interval for VO,VI, BE, BK traffic
+
+InfraUapsdVoSrvIntv=0
+
+InfraUapsdViSrvIntv=0
+
+InfraUapsdBeSrvIntv=0
+
+InfraUapsdBkSrvIntv=0
+
+
+# Disable RSSI FW filtering
+
+gEnableFWRssiMonitoring=1
+
+
+# Make 1x1 the default antenna configuration
+
+gNumRxAnt=1
+
+
+# Beacon filtering frequency (unit in beacon intervals)
+
+gNthBeaconFilter=50
+
+
+# Enable WAPI or not
+
+# WAPIIsEnabled=0
+
+
+# Flags to filter Mcast abd Bcast RX packets.
+
+# Value 0: No filtering, 1: Filter all Multicast.
+
+# 2: Filter all Broadcast. 3: Filter all Mcast abd Bcast
+
+McastBcastFilter=3
+
+
+#Flag to enable HostARPOffload feature or not
+
+hostArpOffload=0
+
+
+#SoftAP Related Parameters
+
+# AP MAc addr
+
+gAPMacAddr=000AF589dcab
+
+
+# 802.11n Protection flag
+
+gEnableApProt=1
+
+
+#Enable OBSS protection
+
+gEnableApOBSSProt=0
+
+
+#Enable/Disable UAPSD for SoftAP
+
+gEnableApUapsd=0
+
+
+# Fixed Rate
+
+gFixedRate=0
+
+
+# Maximum Tx power
+
+# gTxPowerCap=30
+
+
+# Fragmentation Threshold
+
+# gFragmentationThreshold=2346
+
+
+# RTS threshold
+
+RTSThreshold=2347
+
+
+# Intra-BSS forward
+
+gDisableIntraBssFwd=0
+
+
+# WMM Enable/Disable
+
+WmmIsEnabled=0
+
+
+# 802.11d support
+
+g11dSupportEnabled=1
+
+# CCX Support and fast transition
+CcxEnabled=0
+FastTransitionEnabled=1
+ImplicitQosIsEnabled=1
+gNeighborScanTimerPeriod=200
+
+gNeighborLookupThreshold=76
+gNeighborReassocThreshold=81
+
+gNeighborScanChannelMinTime=20
+gNeighborScanChannelMaxTime=30
+gMaxNeighborReqTries=3
+
+# Legacy (non-CCX, non-802.11r) Fast Roaming Support
+# To enable, set FastRoamEnabled=1, gEnableFWRssiMonitoring=1, FastTransitionEnabled=1
+# To disable, set FastRoamEnabled=0, gEnableFWRssiMonitoring=0, FastTransitionEnabled=0
+FastRoamEnabled=1
+
+#Check if the AP to which we are roaming is better than current AP in terms of RSSI.
+#Checking is disabled if set to Zero.Otherwise it will use this value as to how better
+#the RSSI of the new/roamable AP should be for roaming
+RoamRssiDiff=3
+
+#Configure the RSSI gap that will be used to partition/categorize width of
+#each individual category (aka bucket).
+gRssiCatGap=5
+
+#Prefer 5GHz APs while roaming (default is gRoamPrefer5GHz=1)
+gRoamPrefer5GHz=1
+
+# SAP Country code
+
+# Default Country Code is 2 bytes, 3rd byte is optional indoor or out door.
+
+# Example
+
+# US Indoor, USI
+
+# Korea Outdoor, KRO
+
+# Japan without optional byte, JP
+
+# France without optional byte, FR
+
+#gAPCntryCode=USI
+
+
+#Short Guard Interval Enable/disable
+
+gShortGI20Mhz=1
+
+gShortGI40Mhz=1
+
+
+#Auto Shutdown Value in seconds. A value of 0 means Auto shutoff is disabled
+
+gAPAutoShutOff=0
+
+
+# SAP auto channel selection configuration
+
+# 0 = disable auto channel selection
+
+# 1 = enable auto channel selection, channel provided by supplicant will be ignored
+
+gApAutoChannelSelection=0
+
+
+# Listen Energy Detect Mode Configuration
+
+# Valid values 0-128
+
+# 128 means disable Energy Detect feature
+
+# 0-9 are threshold code and 7 is recommended value from system if feature is to be enabled.
+
+# 10-128 are reserved.
+
+# The EDET threshold mapping is as follows in 3dB step:
+
+# 0 = -60 dBm
+
+# 1 = -63 dBm
+
+# 2 = -66 dBm
+
+# ...
+
+# 7 = -81 dBm
+
+# 8 = -84 dBm
+
+# 9 = -87 dBm
+
+# Note: Any of these settings are valid. Setting 0 would yield the highest power saving (in a noisy environment) at the cost of more range. The range impact is approximately #calculated as:
+
+#
+
+# Range Loss (dB) = EDET threshold level (dBm) + 97 dBm.
+
+#
+
+gEnablePhyAgcListenMode=128
+
+
+#Preferred channel to start BT AMP AP mode (0 means, any channel)
+
+BtAmpPreferredChannel=0
+
+
+#Preferred band (both or 2.4 only or 5 only)
+
+BandCapability=0
+
+
+#Beacon Early Termination (1 = enable the BET feature, 0 = disable)
+
+enableBeaconEarlyTermination=0
+
+beaconEarlyTerminationWakeInterval=3
+
+
+#Bluetooth Alternate Mac Phy (1 = enable the BT AMP feature, 0 = disable)
+
+gEnableBtAmp=0
+
+
+#SOFTAP Channel Range selection
+
+gAPChannelSelectStartChannel=1
+
+gAPChannelSelectEndChannel=11
+
+
+#SOFTAP Channel Range selection Operating band
+
+# 0:2.4GHZ 1: LOW-5GHZ 2:MID-5GHZ 3:HIGH-5GHZ 4: 4.9HZ BAND
+
+gAPChannelSelectOperatingBand=0
+
+
+#Channel Bonding
+gChannelBondingMode5GHz=6
+
+
+#Enable Keep alive with non-zero period value
+
+#gStaKeepAlivePeriod = 30
+
+
+#If set will start with active scan after driver load, otherwise will start with
+
+#passive scan to find out the domain
+
+#gEnableBypass11d=1
+
+
+#If set to 0, will not scan DFS channels
+
+gEnableDFSChnlScan=1
+
+
+gVhtChannelWidth=2
+gEnableLogp=1
+
+
+# Enable Automatic Tx Power control
+
+gEnableAutomaticTxPowerControl=1
+
+# 0 for OLPC 1 for CLPC and SCPC
+gEnableCloseLoop=1
+
+#Data Inactivity Timeout when in powersave (in ms)
+gDataInactivityTimeout=200
+
+# VHT Tx/Rx MCS values
+# Valid values are 0,1,2. If commented out, the default value is 0.
+# 0=MCS0-7, 1=MCS0-8, 2=MCS0-9
+gVhtRxMCS=2
+gVhtTxMCS=2
+
+gEnableLpwrImgTransition=1
+
+# Enable Tx beamforming
+gTxBFEnable=1
+
+# Enable Tx LDPC
+gTxLdpcEnable=1
+
+<<<<<<< HEAD
+#Enable Active ARP Offload by default
+gEnableActiveModeOffload=1
+
+=======
+#disable LDPC in STA mode if the AP is TXBF capable
+gDisableLDPCWithTxbfAP=1
+>>>>>>> 801fd84... Disable LDPC in sta mode when AP is TXBF capable
+END
+
+# Note: Configuration parser would not read anything past the END marker
+