Browse Source

qcacld-3.0: update mlme caps for the EHT

update the mlme data structures with eht capabilities.

Change-Id: I3d6b450d673d07560086383a6e32f5602d59ae41
CRs-Fixed: 2911882
Arun Kumar Khandavalli 4 years ago
parent
commit
40e2d02202

+ 4 - 0
components/mlme/core/inc/wlan_mlme_main.h

@@ -344,6 +344,7 @@ struct wait_for_key_timer {
  * @rso_cfg: per vdev RSO config to be sent to FW
  * @connect_info: mlme connect information
  * @wait_key_timer: wait key timer
+ * @eht_config: Eht capability configuration
  */
 struct mlme_legacy_priv {
 	bool chan_switch_in_progress;
@@ -381,6 +382,9 @@ struct mlme_legacy_priv {
 #endif
 	struct mlme_connect_info connect_info;
 	struct wait_for_key_timer wait_key_timer;
+#ifdef WLAN_FEATURE_11BE
+	tDot11fIEeht_cap eht_config;
+#endif
 };
 
 /**

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

@@ -3129,4 +3129,14 @@ bool wlan_mlme_is_local_tpe_pref(struct wlan_objmgr_psoc *psoc);
  */
 bool
 wlan_mlme_is_data_stall_recovery_fw_supported(struct wlan_objmgr_psoc *psoc);
+
+/**
+ * mlme_cfg_get_eht_caps() - Get the EHT capability info
+ * @psoc: pointer to psoc object
+ * @eht_cap: Caps that needs to be filled.
+ *
+ * Return: QDF Status
+ */
+QDF_STATUS mlme_cfg_get_eht_caps(struct wlan_objmgr_psoc *psoc,
+				 tDot11fIEeht_cap *eht_cap);
 #endif /* _WLAN_MLME_API_H_ */

+ 1 - 1
components/mlme/dispatcher/inc/wlan_mlme_public_struct.h

@@ -1066,7 +1066,7 @@ struct wlan_mlme_he_caps {
  */
 struct wlan_mlme_eht_caps {
 	tDot11fIEeht_cap dot11_eht_cap;
-
+	tDot11fIEeht_cap eht_cap_orig;
 	/* Add members to store INI configuration corresponding to 11be */
 };
 #endif

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

@@ -4143,4 +4143,17 @@ ucfg_mlme_is_sta_mon_conc_supported(struct wlan_objmgr_psoc *psoc)
 	return wlan_mlme_is_sta_mon_conc_supported(psoc);
 }
 
+/**
+ * ucfg_mlme_cfg_get_eht_caps() - Get the EHT capability info
+ * @psoc: pointer to psoc object
+ * @eht_cap: Caps that needs to be filled.
+ *
+ * Return: QDF Status
+ */
+static inline
+QDF_STATUS ucfg_mlme_cfg_get_eht_caps(struct wlan_objmgr_psoc *psoc,
+				      tDot11fIEeht_cap *eht_cap)
+{
+	return mlme_cfg_get_eht_caps(psoc, eht_cap);
+}
 #endif /* _WLAN_MLME_UCFG_API_H_ */

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

@@ -901,6 +901,15 @@ QDF_STATUS mlme_update_tgt_he_caps_in_cfg(struct wlan_objmgr_psoc *psoc,
 QDF_STATUS mlme_update_tgt_eht_caps_in_cfg(struct wlan_objmgr_psoc *psoc,
 					   struct wma_tgt_cfg *wma_cfg)
 {
+	struct wlan_mlme_psoc_ext_obj *mlme_obj = mlme_get_psoc_ext_obj(psoc);
+	tDot11fIEeht_cap *eht_cap = &wma_cfg->eht_cap;
+
+	if (!mlme_obj)
+		return QDF_STATUS_E_FAILURE;
+
+	mlme_obj->cfg.eht_caps.dot11_eht_cap.present = 1;
+	qdf_mem_copy(&mlme_obj->cfg.eht_caps.dot11_eht_cap, eht_cap,
+		     sizeof(tDot11fIEeht_cap));
 	return QDF_STATUS_SUCCESS;
 }
 #endif
@@ -4731,3 +4740,19 @@ bool wlan_mlme_is_local_tpe_pref(struct wlan_objmgr_psoc *psoc)
 
 	return mlme_obj->cfg.power.use_local_tpe;
 }
+
+#ifdef WLAN_FEATURE_11BE
+QDF_STATUS mlme_cfg_get_eht_caps(struct wlan_objmgr_psoc *psoc,
+				 tDot11fIEeht_cap *eht_cap)
+{
+	struct wlan_mlme_psoc_ext_obj *mlme_obj;
+
+	mlme_obj = mlme_get_psoc_ext_obj(psoc);
+	if (!mlme_obj)
+		return QDF_STATUS_E_FAILURE;
+
+	*eht_cap = mlme_obj->cfg.eht_caps.dot11_eht_cap;
+
+	return QDF_STATUS_SUCCESS;
+}
+#endif