wlan: Implement three states(values) for ini paramter toggleArpBDRates
Implement three states(values) for ini parameter toggleArpBDRates. So
that when it is set to 0 then disable feature, when set to 1 enable
toggling of ARP packets rates (1/6Mbps) and send using TID3 and
when set to 2 send on WQ5 along with toggling of ARP packets and
send using TID3
Change-Id: I6ef45af02ae6c2f64bf9e00d619c4a94a4f26aac
CRs-Fixed: 906480
diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h
index d76f68f..03c17b9 100644
--- a/CORE/HDD/inc/wlan_hdd_cfg.h
+++ b/CORE/HDD/inc/wlan_hdd_cfg.h
@@ -2497,7 +2497,7 @@
#define CFG_TOGGLE_ARP_BDRATES_NAME "gToggleArpBDRates"
#define CFG_TOGGLE_ARP_BDRATES_MIN 0
-#define CFG_TOGGLE_ARP_BDRATES_MAX 1
+#define CFG_TOGGLE_ARP_BDRATES_MAX 2
#define CFG_TOGGLE_ARP_BDRATES_DEFAULT 0
/*
diff --git a/CORE/MAC/inc/wniCfg.h b/CORE/MAC/inc/wniCfg.h
index a96f333..f1d4f2a 100644
--- a/CORE/MAC/inc/wniCfg.h
+++ b/CORE/MAC/inc/wniCfg.h
@@ -1868,7 +1868,7 @@
#define WNI_CFG_ENABLE_RTSCTS_HTVHT_DEF 0x0000
#define WNI_CFG_TOGGLE_ARP_BDRATES_MIN 0
-#define WNI_CFG_TOGGLE_ARP_BDRATES_MAX 1
+#define WNI_CFG_TOGGLE_ARP_BDRATES_MAX 2
#define WNI_CFG_TOGGLE_ARP_BDRATES_DEF 0
#define WNI_CFG_BTC_STATIC_OPP_WLAN_IDLE_WLAN_LEN_MIN 0
diff --git a/CORE/TL/src/wlan_qct_tl.c b/CORE/TL/src/wlan_qct_tl.c
index eaa874d..d0ae3f2 100644
--- a/CORE/TL/src/wlan_qct_tl.c
+++ b/CORE/TL/src/wlan_qct_tl.c
@@ -238,6 +238,10 @@
/* Maximum value of SNR that can be calculated by the HW */
#define WLANTL_MAX_HW_SNR 35
+#define DISABLE_ARP_TOGGLE 0
+#define ENABLE_ARP_TOGGLE 1
+#define SEND_ARP_ON_WQ5 2
+
/*----------------------------------------------------------------------------
* Type Declarations
* -------------------------------------------------------------------------*/
@@ -1241,7 +1245,8 @@
{
wlan_cfgGetInt(pMac, WNI_CFG_TOGGLE_ARP_BDRATES, &istoggleArpEnb);
}
- pClientSTA->arpRate = (v_U8_t)istoggleArpEnb;
+ pClientSTA->arpRate = istoggleArpEnb ? ENABLE_ARP_TOGGLE : DISABLE_ARP_TOGGLE;
+ pClientSTA->arpOnWQ5 = istoggleArpEnb == SEND_ARP_ON_WQ5;
TLLOG2(VOS_TRACE( VOS_MODULE_ID_TL, VOS_TRACE_LEVEL_INFO_HIGH,
"WLAN TL:Registering STA Client ID: %d with UC %d and BC %d toggleArp :%hhu",
@@ -8066,7 +8071,10 @@
#endif /* FEATURE_WLAN_TDLS */
if( tlMetaInfo.ucIsArp )
{
- ucTxFlag |= HAL_USE_FW_IN_TX_PATH;
+ if (pStaClient->arpOnWQ5)
+ {
+ ucTxFlag |= HAL_USE_FW_IN_TX_PATH;
+ }
if (pStaClient->arpRate == 0)
{
ucTxFlag |= HAL_USE_BD_RATE_1_MASK;
diff --git a/CORE/TL/src/wlan_qct_tli.h b/CORE/TL/src/wlan_qct_tli.h
index b9f3744..ac0247d 100644
--- a/CORE/TL/src/wlan_qct_tli.h
+++ b/CORE/TL/src/wlan_qct_tli.h
@@ -698,6 +698,7 @@
#endif
/* BD Rate for transmitting ARP packets */
v_U8_t arpRate;
+ v_BOOL_t arpOnWQ5;
}WLANTL_STAClientType;
/*---------------------------------------------------------------------------