summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrank Liu <qiliu@codeaurora.org>2016-11-18 13:43:14 +0800
committerGerrit - the friendly Code Review server <code-review@localhost>2016-12-05 05:27:24 -0800
commite5f28f791dbf0cf49ac62e5c461cfa0d070f788a (patch)
tree655cdf0243ab7876a32437b6efa0d05901ac303a
parentc7f032215761e695b9d8da277b61c4e9afe1b068 (diff)
qcacld-2.0: Support for configure wlan rts sifs,ampdu count
Add support for host enable/disable rts sifs bursting, and set default tx mpdu aggregation count. CRs-Fixed: 1089478 Change-Id: Ieb63621f217ccd1a50b925ea4dda05fecad01387
-rw-r--r--CORE/HDD/inc/qc_sap_ioctl.h2
-rw-r--r--CORE/HDD/inc/wlan_hdd_cfg.h12
-rw-r--r--CORE/HDD/src/wlan_hdd_cfg.c14
-rw-r--r--CORE/HDD/src/wlan_hdd_hostapd.c24
-rw-r--r--CORE/HDD/src/wlan_hdd_main.c13
5 files changed, 65 insertions, 0 deletions
diff --git a/CORE/HDD/inc/qc_sap_ioctl.h b/CORE/HDD/inc/qc_sap_ioctl.h
index 1e52ac926099..9db581a099aa 100644
--- a/CORE/HDD/inc/qc_sap_ioctl.h
+++ b/CORE/HDD/inc/qc_sap_ioctl.h
@@ -268,6 +268,8 @@ enum {
QCASAP_PARAM_RX_STBC,
QCASAP_SET_RADAR_DBG,
QCSAP_PARAM_CHAN_WIDTH,
+ QCSAP_SET_DEFAULT_AMPDU,
+ QCSAP_ENABLE_RTS_BURSTING,
};
int iw_get_channel_list(struct net_device *dev,
diff --git a/CORE/HDD/inc/wlan_hdd_cfg.h b/CORE/HDD/inc/wlan_hdd_cfg.h
index 334a30a4c45c..a15dd7ee225e 100644
--- a/CORE/HDD/inc/wlan_hdd_cfg.h
+++ b/CORE/HDD/inc/wlan_hdd_cfg.h
@@ -1473,6 +1473,16 @@ typedef enum
#define CFG_REPORT_MAX_LINK_SPEED_MAX ( eHDD_LINK_SPEED_REPORT_MAX_SCALED )
#define CFG_REPORT_MAX_LINK_SPEED_DEFAULT ( eHDD_LINK_SPEED_REPORT_MAX_SCALED )
+#define CFG_SET_RTS_FOR_SIFS_BURSTING "gSetRTSForSIFSBursting"
+#define CFG_SET_RTS_FOR_SIFS_BURSTING_MIN (0)
+#define CFG_SET_RTS_FOR_SIFS_BURSTING_MAX (1)
+#define CFG_SET_RTS_FOR_SIFS_BURSTING_DEFAULT (0)
+
+#define CFG_MAX_MPDUS_IN_AMPDU "gMaxMPDUsInAMPDU"
+#define CFG_MAX_MPDUS_IN_AMPDU_MIN (0)
+#define CFG_MAX_MPDUS_IN_AMPDU_MAX (64)
+#define CFG_MAX_MPDUS_IN_AMPDU_DEFAULT (0)
+
/*
* RSSI Thresholds
* Used when eHDD_LINK_SPEED_REPORT_SCALED is selected
@@ -4804,6 +4814,8 @@ struct hdd_config {
v_BOOL_t gEnableOverLapCh;
v_BOOL_t fRegChangeDefCountry;
v_U8_t acsScanBandPreference;
+ uint8_t enable_rts_sifsbursting;
+ uint8_t max_mpdus_inampdu;
#ifdef QCA_LL_TX_FLOW_CT
v_U32_t TxFlowLowWaterMark;
v_U32_t TxFlowHighWaterMarkOffset;
diff --git a/CORE/HDD/src/wlan_hdd_cfg.c b/CORE/HDD/src/wlan_hdd_cfg.c
index ffcb181d9f7c..ff6a99900659 100644
--- a/CORE/HDD/src/wlan_hdd_cfg.c
+++ b/CORE/HDD/src/wlan_hdd_cfg.c
@@ -2373,6 +2373,20 @@ REG_TABLE_ENTRY g_registry_table[] =
CFG_DISABLE_DFS_JAPAN_W53_MAX,
chNotify_set_gDisableDfsJapanW53, 0),
+ REG_VARIABLE(CFG_SET_RTS_FOR_SIFS_BURSTING, WLAN_PARAM_Integer,
+ hdd_config_t, enable_rts_sifsbursting,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_SET_RTS_FOR_SIFS_BURSTING_DEFAULT,
+ CFG_SET_RTS_FOR_SIFS_BURSTING_MIN,
+ CFG_SET_RTS_FOR_SIFS_BURSTING_MAX),
+
+ REG_VARIABLE(CFG_MAX_MPDUS_IN_AMPDU, WLAN_PARAM_Integer,
+ hdd_config_t, max_mpdus_inampdu,
+ VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
+ CFG_MAX_MPDUS_IN_AMPDU_DEFAULT,
+ CFG_MAX_MPDUS_IN_AMPDU_MIN,
+ CFG_MAX_MPDUS_IN_AMPDU_MAX),
+
REG_VARIABLE( CFG_ENABLE_FIRST_SCAN_2G_ONLY_NAME, WLAN_PARAM_Integer,
hdd_config_t, enableFirstScan2GOnly,
VAR_FLAGS_OPTIONAL | VAR_FLAGS_RANGE_CHECK_ASSUME_DEFAULT,
diff --git a/CORE/HDD/src/wlan_hdd_hostapd.c b/CORE/HDD/src/wlan_hdd_hostapd.c
index 47025f8ac458..a4a2edf62bb8 100644
--- a/CORE/HDD/src/wlan_hdd_hostapd.c
+++ b/CORE/HDD/src/wlan_hdd_hostapd.c
@@ -3727,6 +3727,20 @@ static __iw_softap_setparam(struct net_device *dev,
ret = hdd_set_rx_stbc(pHostapdAdapter, set_value);
break;
+ case QCSAP_SET_DEFAULT_AMPDU:
+ hddLog(LOG1, "QCSAP_SET_DEFAULT_AMPDU val %d", set_value);
+ ret = process_wma_set_command((int)pHostapdAdapter->sessionId,
+ (int)WMI_PDEV_PARAM_MAX_MPDUS_IN_AMPDU,
+ set_value, PDEV_CMD);
+ break;
+
+ case QCSAP_ENABLE_RTS_BURSTING:
+ hddLog(LOG1, "QCSAP_ENABLE_RTS_BURSTING val %d", set_value);
+ ret = process_wma_set_command((int)pHostapdAdapter->sessionId,
+ (int)WMI_PDEV_PARAM_ENABLE_RTS_SIFS_BURSTING,
+ set_value, PDEV_CMD);
+ break;
+
default:
hddLog(LOGE, FL("Invalid setparam command %d value %d"),
sub_cmd, set_value);
@@ -6486,6 +6500,16 @@ static const struct iw_priv_args hostapd_private_args[] = {
0,
"set_rx_stbc" },
+ { QCSAP_SET_DEFAULT_AMPDU,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
+ 0,
+ "def_ampdu" },
+
+ { QCSAP_ENABLE_RTS_BURSTING,
+ IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1,
+ 0,
+ "rts_bursting" },
+
{ QCSAP_IOCTL_GETPARAM, 0,
IW_PRIV_TYPE_INT | IW_PRIV_SIZE_FIXED | 1, "getparam" },
{ QCSAP_IOCTL_GETPARAM, 0,
diff --git a/CORE/HDD/src/wlan_hdd_main.c b/CORE/HDD/src/wlan_hdd_main.c
index 5db411abed51..e0f3a0e0070d 100644
--- a/CORE/HDD/src/wlan_hdd_main.c
+++ b/CORE/HDD/src/wlan_hdd_main.c
@@ -15893,6 +15893,19 @@ int hdd_wlan_startup(struct device *dev, v_VOID_t *hif_sc)
set_value, PDEV_CMD);
}
+ if (pHddCtx->cfg_ini->max_mpdus_inampdu) {
+ set_value = pHddCtx->cfg_ini->max_mpdus_inampdu;
+ process_wma_set_command(0, (int)WMI_PDEV_PARAM_MAX_MPDUS_IN_AMPDU,
+ set_value, PDEV_CMD);
+ }
+
+ if (pHddCtx->cfg_ini->enable_rts_sifsbursting) {
+ set_value = pHddCtx->cfg_ini->enable_rts_sifsbursting;
+ process_wma_set_command(0, (int)WMI_PDEV_PARAM_ENABLE_RTS_SIFS_BURSTING,
+ set_value, PDEV_CMD);
+
+ }
+
if (hdd_wlan_enable_egap(pHddCtx))
hddLog(LOGE, FL("enhance green ap is not enabled"));