فهرست منبع

qcacld-3.0: Add MLME-CFG items for feature flags

Add these cfg mlme items for feature flags:-
1. ACCEPT_SHORT_SLOT_ASSOC_ONLY
2. HCF_ENABLED
3. RSN_ENABLED
4. 11G_SHORT_PREAMBLE_ENABLED
5. 11G_SHORT_SLOT_TIME_ENABLED
6. CHANNEL_BONDING_MODE
7. CFG_BLOCK_ACK_ENABLED

Change-Id: Id55299ece0169d40608df8508fbd768bb8aed741
CRs-Fixed: 2315584
gaurank kathpalia 6 سال پیش
والد
کامیت
b30be33530

+ 19 - 0
mlme/core/src/wlan_mlme_main.c

@@ -392,6 +392,24 @@ static void mlme_init_rates_in_cfg(struct wlan_objmgr_psoc *psoc,
 					 CFG_INI_DISABLE_HIGH_HT_RX_MCS_2x2);
 					 CFG_INI_DISABLE_HIGH_HT_RX_MCS_2x2);
 }
 }
 
 
+static void mlme_init_feature_flag_in_cfg(
+				struct wlan_objmgr_psoc *psoc,
+				struct wlan_mlme_feature_flag *feature_flags)
+{
+	feature_flags->accept_short_slot_assoc =
+				cfg_default(CFG_ACCEPT_SHORT_SLOT_ASSOC_ONLY);
+	feature_flags->enable_hcf = cfg_default(CFG_HCF_ENABLED);
+	feature_flags->enable_rsn = cfg_default(CFG_RSN_ENABLED);
+	feature_flags->enable_short_preamble_11g =
+				cfg_default(CFG_11G_SHORT_PREAMBLE_ENABLED);
+	feature_flags->enable_short_slot_time_11g =
+				cfg_default(CFG_11G_SHORT_SLOT_TIME_ENABLED);
+	feature_flags->channel_bonding_mode =
+				cfg_default(CFG_CHANNEL_BONDING_MODE);
+	feature_flags->enable_block_ack = cfg_default(CFG_BLOCK_ACK_ENABLED);
+	feature_flags->enable_ampdu = cfg_get(psoc, CFG_ENABLE_AMPDUPS);
+}
+
 static void mlme_init_sap_protection_cfg(struct wlan_objmgr_psoc *psoc,
 static void mlme_init_sap_protection_cfg(struct wlan_objmgr_psoc *psoc,
 					 struct wlan_mlme_sap_protection
 					 struct wlan_mlme_sap_protection
 					 *sap_protection_params)
 					 *sap_protection_params)
@@ -916,6 +934,7 @@ QDF_STATUS mlme_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc)
 	mlme_init_obss_ht40_cfg(psoc, &mlme_cfg->obss_ht40);
 	mlme_init_obss_ht40_cfg(psoc, &mlme_cfg->obss_ht40);
 	mlme_init_sta_cfg(psoc, &mlme_cfg->sta);
 	mlme_init_sta_cfg(psoc, &mlme_cfg->sta);
 	mlme_init_lfr_cfg(psoc, &mlme_cfg->lfr);
 	mlme_init_lfr_cfg(psoc, &mlme_cfg->lfr);
+	mlme_init_feature_flag_in_cfg(psoc, &mlme_cfg->feature_flags);
 	mlme_init_scoring_cfg(psoc, &mlme_cfg->scoring);
 	mlme_init_scoring_cfg(psoc, &mlme_cfg->scoring);
 	mlme_init_oce_cfg(psoc, &mlme_cfg->oce);
 	mlme_init_oce_cfg(psoc, &mlme_cfg->oce);
 
 

+ 3 - 1
mlme/dispatcher/inc/cfg_mlme.h

@@ -39,11 +39,13 @@
 #include "cfg_mlme_sap.h"
 #include "cfg_mlme_sap.h"
 #include "cfg_mlme_scoring.h"
 #include "cfg_mlme_scoring.h"
 #include "cfg_mlme_oce.h"
 #include "cfg_mlme_oce.h"
+#include "cfg_mlme_feature_flag.h"
 
 
 /* Please Maintain Alphabetic Order here */
 /* Please Maintain Alphabetic Order here */
 #define CFG_MLME_ALL \
 #define CFG_MLME_ALL \
 	CFG_CHAINMASK_ALL \
 	CFG_CHAINMASK_ALL \
 	CFG_EDCA_PARAMS_ALL \
 	CFG_EDCA_PARAMS_ALL \
+	CFG_FEATURE_FLAG_ALL \
 	CFG_GENERIC_ALL \
 	CFG_GENERIC_ALL \
 	CFG_HT_CAPS_ALL \
 	CFG_HT_CAPS_ALL \
 	CFG_HE_CAPS_ALL \
 	CFG_HE_CAPS_ALL \
@@ -57,6 +59,6 @@
 	CFG_SAP_PROTECTION_ALL \
 	CFG_SAP_PROTECTION_ALL \
 	CFG_SCORING_ALL \
 	CFG_SCORING_ALL \
 	CFG_STA_ALL \
 	CFG_STA_ALL \
-	CFG_VHT_CAPS_ALL
+	CFG_VHT_CAPS_ALL \
 
 
 #endif /* __CFG_MLME_H */
 #endif /* __CFG_MLME_H */

+ 100 - 0
mlme/dispatcher/inc/cfg_mlme_feature_flag.h

@@ -0,0 +1,100 @@
+/*
+ * Copyright (c) 2012-2018 The Linux Foundation. All rights reserved.
+ *
+ * Permission to use, copy, modify, and/or distribute this software for
+ * any purpose with or without fee is hereby granted, provided that the
+ * above copyright notice and this permission notice appear in all
+ * copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+ * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/**
+ * DOC: This file contains centralized definitions of converged configuration.
+ */
+
+#ifndef __CFG_MLME_FEATURE_FLAG_H
+#define __CFG_MLME_FEATURE_FLAG_H
+
+#define CFG_ACCEPT_SHORT_SLOT_ASSOC_ONLY CFG_BOOL( \
+		"accept_short_slot_assoc", \
+		0, \
+		"Accept short slot assoc only")
+
+#define CFG_HCF_ENABLED CFG_BOOL( \
+		"enable_hcf", \
+		0, \
+		"HCF enabled")
+
+#define CFG_RSN_ENABLED CFG_BOOL( \
+		"enable_rsn", \
+		0, \
+		"RSN enabled")
+
+#define CFG_11G_SHORT_PREAMBLE_ENABLED CFG_BOOL( \
+		"enable_short_preamble_11g", \
+		0, \
+		"Short Preamble Enable")
+
+#define CFG_11G_SHORT_SLOT_TIME_ENABLED CFG_BOOL( \
+		"enable_short_slot_time_11g", \
+		1, \
+		"Short Slot time enable")
+
+#define CFG_CHANNEL_BONDING_MODE CFG_UINT( \
+		"channel_bonding_mode", \
+		0, \
+		10, \
+		0, \
+		CFG_VALUE_OR_DEFAULT, \
+		"channel bonding mode")
+
+#define CFG_BLOCK_ACK_ENABLED CFG_UINT( \
+		"enable_block_ack", \
+		0, \
+		3, \
+		0, \
+		CFG_VALUE_OR_DEFAULT, \
+		"enable block Ack")
+/*
+ * <ini>
+ * gEnableAMPDUPS - Enable the AMPDUPS
+ * @Min: 0
+ * @Max: 1
+ * @Default: 0
+ *
+ * This ini is used to set default AMPDUPS
+ *
+ * Related: None
+ *
+ * Supported Feature: STA
+ *
+ * Usage: Internal/External
+ *
+ * </ini>
+ */
+
+#define CFG_ENABLE_AMPDUPS CFG_INI_BOOL( \
+				"gEnableAMPDUPS", \
+				0, \
+				"Enable AMPDU")
+
+#define CFG_FEATURE_FLAG_ALL \
+	CFG(CFG_ACCEPT_SHORT_SLOT_ASSOC_ONLY) \
+	CFG(CFG_HCF_ENABLED) \
+	CFG(CFG_RSN_ENABLED) \
+	CFG(CFG_11G_SHORT_PREAMBLE_ENABLED) \
+	CFG(CFG_11G_SHORT_SLOT_TIME_ENABLED) \
+	CFG(CFG_CHANNEL_BONDING_MODE) \
+	CFG(CFG_BLOCK_ACK_ENABLED) \
+	CFG(CFG_ENABLE_AMPDUPS)
+
+#endif /* __CFG_MLME_FEATURE_FLAG_H */
+

+ 24 - 0
mlme/dispatcher/inc/wlan_mlme_public_struct.h

@@ -453,6 +453,28 @@ struct wlan_mlme_rates {
 #define MLME_PROTECTION_ENABLED_OLBC_RIFS           14
 #define MLME_PROTECTION_ENABLED_OLBC_RIFS           14
 #define MLME_PROTECTION_ENABLED_OLBC_OBSS           15
 #define MLME_PROTECTION_ENABLED_OLBC_OBSS           15
 
 
+/**
+ * struct wlan_mlme_feature_flag - feature related information
+ * @accept_short_slot_assoc: enable short sloc feature
+ * @enable_hcf: enable HCF feature
+ * @enable_rsn: enable RSN for connection
+ * @enable_short_preamble_11g: enable short preamble for 11g
+ * @channel_bonding_mode: channel bonding mode
+ * @enable_block_ack: enable block ack feature
+ * @enable_ampdu: Enable AMPDU feature
+ */
+
+struct wlan_mlme_feature_flag {
+	bool accept_short_slot_assoc;
+	bool enable_hcf;
+	bool enable_rsn;
+	bool enable_short_preamble_11g;
+	bool enable_short_slot_time_11g;
+	uint32_t channel_bonding_mode;
+	uint32_t enable_block_ack;
+	bool enable_ampdu;
+};
+
 /*
 /*
  * struct wlan_mlme_sap_protection_cfg - SAP erp protection config items
  * struct wlan_mlme_sap_protection_cfg - SAP erp protection config items
  *
  *
@@ -798,6 +820,7 @@ struct wlan_mlme_oce {
  * @sap_protection_cfg: SAP erp protection related CFG items
  * @sap_protection_cfg: SAP erp protection related CFG items
  * @sta: sta CFG Items
  * @sta: sta CFG Items
  * @scoring: BSS Scoring related CFG Items
  * @scoring: BSS Scoring related CFG Items
+ * @feature_flags: Feature flag config items
  */
  */
 struct wlan_mlme_cfg {
 struct wlan_mlme_cfg {
 	struct wlan_mlme_edca_params edca_params;
 	struct wlan_mlme_edca_params edca_params;
@@ -816,6 +839,7 @@ struct wlan_mlme_cfg {
 	struct wlan_mlme_sta_cfg sta;
 	struct wlan_mlme_sta_cfg sta;
 	struct wlan_mlme_scoring_cfg scoring;
 	struct wlan_mlme_scoring_cfg scoring;
 	struct wlan_mlme_oce oce;
 	struct wlan_mlme_oce oce;
+	struct wlan_mlme_feature_flag feature_flags;
 };
 };
 
 
 #endif
 #endif