wlan: Add parameter to set management frame rate in 2.4Gh
Add gDefaultRateIndex24Ghz param in .ini to change
WNI_CFG_DEFAULT_RATE_INDEX_24GHZ of cfg.dat, used to set
management frame rate in 2.4Gh.
gDefaultRateIndex24Ghz Rate(MBPS)
1 1
2 2
3 5.5
4 11
5 6
6 12
7 24
Change-Id: Ic9987ca3b4fe7c395c69755beb75cc7c5a45509b
CRs-Fixed: 616045
diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h
index 944e1d5..6288286 100644
--- a/CORE/HDD/inc/wlan_hdd_cfg.h
+++ b/CORE/HDD/inc/wlan_hdd_cfg.h
@@ -1459,6 +1459,36 @@
#define CFG_OBSS_HT40_SCAN_WIDTH_TRIGGER_INTERVAL_MAX ( 900 )
#define CFG_OBSS_HT40_SCAN_WIDTH_TRIGGER_INTERVAL_DEFAULT ( 200 )
+/* In cfg.dat 1=1MBPS, 2=2MBPS, 3=5_5MBPS, 4=11MBPS, 5=6MBPS, 6=9MBPS,
+ * 7=12MBPS, 8=18MBPS, 9=24MBPS. But 6=9MBPS and 8=18MBPS are not basic
+ * 11g rates and should not be set by gDefaultRateIndex24Ghz. So instead
+ * of using index 1-9 we will use 1-7 and if user set gDefaultRateIndex24Ghz=6
+ * set 7=12MBPS in CFG and if user set gDefaultRateIndex24Ghz=7 set
+ * 9=24MBPS in CFG.
+*/
+
+#define HDD_DEFAULT_RATE_12MBPS 6
+#define HDD_DEFAULT_RATE_24MBPS 7
+#define CFG_DEFAULT_RATE_12MBPS 7
+#define CFG_DEFAULT_RATE_24MBPS 9
+#define CFG_DEFAULT_RATE_INDEX_24GH "gDefaultRateIndex24Ghz"
+#define CFG_DEFAULT_RATE_INDEX_24GH_MIN ( 1 )
+#define CFG_DEFAULT_RATE_INDEX_24GH_MAX ( 7 )
+#define CFG_DEFAULT_RATE_INDEX_24GH_DEFAULT ( 1 )
+
+static __inline tANI_U32 defHddRateToDefCfgRate( tANI_U32 defRateIndex )
+{
+ switch(defRateIndex){
+ case HDD_DEFAULT_RATE_12MBPS:
+ return CFG_DEFAULT_RATE_12MBPS;
+ break;
+ case HDD_DEFAULT_RATE_24MBPS:
+ return CFG_DEFAULT_RATE_24MBPS;
+ break;
+ default:
+ return defRateIndex;
+ }
+}
/*
* VOS Trace Enable Control
* Notes:
@@ -2496,6 +2526,7 @@
v_U16_t nOBSSScanWidthTriggerInterval;
v_BOOL_t gEnableStrictRegulatoryForFCC;
v_BOOL_t advertiseConcurrentOperation;
+ v_U32_t defaultRateIndex24Ghz;
} hdd_config_t;
/*---------------------------------------------------------------------------
Function declarations and documenation
diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c
index 46701f1..6d32178 100644
--- a/CORE/HDD/src/wlan_hdd_cfg.c
+++ b/CORE/HDD/src/wlan_hdd_cfg.c
@@ -2916,6 +2916,13 @@
CFG_ADVERTISE_CONCURRENT_OPERATION_MIN,
CFG_ADVERTISE_CONCURRENT_OPERATION_MAX ),
+ REG_VARIABLE( CFG_DEFAULT_RATE_INDEX_24GH, WLAN_PARAM_Integer,
+ hdd_config_t, defaultRateIndex24Ghz,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_DEFAULT_RATE_INDEX_24GH_DEFAULT,
+ CFG_DEFAULT_RATE_INDEX_24GH_MIN,
+ CFG_DEFAULT_RATE_INDEX_24GH_MAX ),
+
};
/*
@@ -4599,6 +4606,16 @@
fStatus = FALSE;
hddLog(LOGE, "Could not pass on WNI_CFG_BTC_CTS2S_DURING_SCO to CCM");
}
+
+ if(ccmCfgSetInt(pHddCtx->hHal,
+ WNI_CFG_DEFAULT_RATE_INDEX_24GHZ,
+ defHddRateToDefCfgRate(pConfig->defaultRateIndex24Ghz),
+ NULL, eANI_BOOLEAN_FALSE) == eHAL_STATUS_FAILURE)
+ {
+ fStatus = FALSE;
+ hddLog(LOGE, "Could not pass on WNI_CFG_DEFAULT_RATE_INDEX_24GHZ to"
+ " CCM\n");
+ }
return fStatus;
}
diff --git a/CORE/WDA/src/wlan_qct_wda.c b/CORE/WDA/src/wlan_qct_wda.c
index 60981f1..4337004 100644
--- a/CORE/WDA/src/wlan_qct_wda.c
+++ b/CORE/WDA/src/wlan_qct_wda.c
@@ -879,7 +879,6 @@
tlvStruct = (tHalCfg *)( (tANI_U8 *) tlvStruct
+ sizeof(tHalCfg) + tlvStruct->length);
-#if 0 /*FIXME_PRIMA : Enable this after the RA is enabled in HAL*/
/* QWLAN_HAL_CFG_DEFAULT_RATE_INDEX_24GHZ */
tlvStruct->type = QWLAN_HAL_CFG_DEFAULT_RATE_INDEX_24GHZ ;
tlvStruct->length = sizeof(tANI_U32);
@@ -893,7 +892,6 @@
}
tlvStruct = (tHalCfg *)( (tANI_U8 *) tlvStruct
+ sizeof(tHalCfg) + tlvStruct->length);
-#endif
/* QWLAN_HAL_CFG_DEFAULT_RATE_INDEX_5GHZ */
tlvStruct->type = QWLAN_HAL_CFG_DEFAULT_RATE_INDEX_5GHZ ;
tlvStruct->length = sizeof(tANI_U32);