Browse Source

qcacld-3.0: Add support for 11be parameters configuration

As part of 11be enhancements in the driver, new configuration
parameters will be added. Define new APIs to support EHT
configuration parameters in the host driver.

Change-Id: Ic1890943a2f941e864d0df102e4954aac75d9f11
CRs-Fixed: 2908030
Bapiraju Alla 4 years ago
parent
commit
8b9c2b1322

+ 13 - 0
components/mlme/core/src/wlan_mlme_main.c

@@ -1263,6 +1263,18 @@ static void mlme_init_twt_cfg(struct wlan_objmgr_psoc *psoc,
 	twt_cfg->is_bcast_responder_enabled = CFG_TWT_GET_BCAST_RES(bcast_conf);
 }
 
+#ifdef WLAN_FEATURE_11BE
+static void mlme_init_eht_cap_in_cfg(struct wlan_objmgr_psoc *psoc,
+				     struct wlan_mlme_cfg *mlme_cfg)
+{
+}
+#else
+static void mlme_init_eht_cap_in_cfg(struct wlan_objmgr_psoc *psoc,
+				     struct wlan_mlme_cfg *mlme_cfg)
+{
+}
+#endif
+
 #ifdef WLAN_FEATURE_SAE
 static bool is_sae_sap_enabled(struct wlan_objmgr_psoc *psoc)
 {
@@ -2480,6 +2492,7 @@ QDF_STATUS mlme_cfg_on_psoc_enable(struct wlan_objmgr_psoc *psoc)
 	mlme_init_nss_chains(psoc, &mlme_cfg->nss_chains_ini_cfg);
 	mlme_init_twt_cfg(psoc, &mlme_cfg->twt_cfg);
 	mlme_init_he_cap_in_cfg(psoc, mlme_cfg);
+	mlme_init_eht_cap_in_cfg(psoc, mlme_cfg);
 	mlme_init_obss_ht40_cfg(psoc, &mlme_cfg->obss_ht40);
 	mlme_init_product_details_cfg(&mlme_cfg->product_details);
 	mlme_init_powersave_params(psoc, &mlme_cfg->ps_params);

+ 15 - 0
components/mlme/dispatcher/inc/wlan_mlme_api.h

@@ -938,6 +938,21 @@ QDF_STATUS mlme_update_tgt_he_caps_in_cfg(struct wlan_objmgr_psoc *psoc,
 					  struct wma_tgt_cfg *cfg);
 #endif
 
+#ifdef WLAN_FEATURE_11BE
+/**
+ * mlme_update_tgt_eht_caps_in_cfg() - Update tgt eht cap in mlme component
+ *
+ * @psoc: pointer to psoc object
+ * @cfg: pointer to config params from target
+ *
+ * This api to be used by callers to update EHT caps in mlme.
+ *
+ * Return: QDF_STATUS_SUCCESS or QDF_STATUS_FAILURE
+ */
+QDF_STATUS mlme_update_tgt_eht_caps_in_cfg(struct wlan_objmgr_psoc *psoc,
+					  struct wma_tgt_cfg *cfg);
+#endif
+
 /**
  * wlan_mlme_is_ap_prot_enabled() - check if sap protection is enabled
  * @psoc: pointer to psoc object

+ 14 - 0
components/mlme/dispatcher/inc/wlan_mlme_public_struct.h

@@ -1060,6 +1060,17 @@ struct wlan_mlme_he_caps {
 };
 #endif
 
+#ifdef WLAN_FEATURE_11BE
+/**
+ * struct wlan_mlme_eht_caps - EHT Capabilities related config items
+ */
+struct wlan_mlme_eht_caps {
+	tDot11fIEeht_cap dot11_eht_cap;
+
+	/* Add members to store INI configuration corresponding to 11be */
+};
+#endif
+
 /**
  * struct wlan_mlme_chain_cfg - Chain info related structure
  * @max_tx_chains_2g: max tx chains supported in 2.4ghz band
@@ -2495,6 +2506,9 @@ struct wlan_mlme_cfg {
 	struct wlan_mlme_ht_caps ht_caps;
 #ifdef WLAN_FEATURE_11AX
 	struct wlan_mlme_he_caps he_caps;
+#endif
+#ifdef WLAN_FEATURE_11BE
+	struct wlan_mlme_eht_caps eht_caps;
 #endif
 	struct wlan_mlme_lfr_cfg lfr;
 	struct wlan_mlme_obss_ht40 obss_ht40;

+ 20 - 0
components/mlme/dispatcher/inc/wlan_mlme_ucfg_api.h

@@ -3274,6 +3274,26 @@ QDF_STATUS ucfg_mlme_cfg_get_enable_ul_ofdm(struct wlan_objmgr_psoc *psoc,
 }
 #endif
 
+#ifdef WLAN_FEATURE_11BE
+/**
+ * ucfg_mlme_update_tgt_eht_cap() - Update tgt EHT cap in mlme component
+ *
+ * @psoc: pointer to psoc object
+ * @cfg: pointer to config params from target
+ *
+ * Inline UCFG API to be used by HDD/OSIF callers to update
+ * EHT caps in mlme.
+ *
+ * Return: QDF_STATUS_SUCCESS or QDF_STATUS_FAILURE
+ */
+static inline QDF_STATUS
+ucfg_mlme_update_tgt_eht_cap(struct wlan_objmgr_psoc *psoc,
+			     struct wma_tgt_cfg *cfg)
+{
+	return mlme_update_tgt_eht_caps_in_cfg(psoc, cfg);
+}
+#endif
+
 /**
  * ucfg_mlme_get_80211e_is_enabled() - Enable 802.11e feature
  * @psoc: pointer to psoc object

+ 8 - 0
components/mlme/dispatcher/src/wlan_mlme_api.c

@@ -897,6 +897,14 @@ QDF_STATUS mlme_update_tgt_he_caps_in_cfg(struct wlan_objmgr_psoc *psoc,
 }
 #endif
 
+#ifdef WLAN_FEATURE_11BE
+QDF_STATUS mlme_update_tgt_eht_caps_in_cfg(struct wlan_objmgr_psoc *psoc,
+					   struct wma_tgt_cfg *wma_cfg)
+{
+	return QDF_STATUS_SUCCESS;
+}
+#endif
+
 QDF_STATUS wlan_mlme_get_num_11b_tx_chains(struct wlan_objmgr_psoc *psoc,
 					   uint16_t *value)
 {

+ 5 - 0
core/mac/src/include/dph_global.h

@@ -183,6 +183,11 @@ typedef struct sDphHashNode {
 	tDot11fIEhe_cap he_config;
 	uint16_t he_mcs_12_13_map;
 #endif
+
+#ifdef WLAN_FEATURE_11BE
+	tDot11fIEeht_cap eht_config;
+#endif
+
 	/* Peer operation class, extracted from ASSOC request frame*/
 	tDot11fIESuppOperatingClasses supp_operating_classes;
 	/*