Bläddra i källkod

qcacld-3.0: Populate the ini and dynamic params

Populate the ini and dynamic params from the mlme
component and store them to the respective
vdev component in mlme priv obj during vdev create.

Change-Id: Ic80526e51ba97c24b5340843fc97406a6ba4c7ef
CRs-Fixed: 2347504
gaurank kathpalia 6 år sedan
förälder
incheckning
c2fc21145a

+ 22 - 0
mlme/core/inc/wlan_mlme_vdev_mgr_interface.h

@@ -46,6 +46,8 @@ enum vdev_assoc_type {
  * @vdev_start_failed: flag to indicate that vdev start failed.
  * @connection_fail: flag to indicate connection failed
  * @assoc_type: vdev associate/reassociate type
+ * @dynamic_cfg: current configuration of nss, chains for vdev.
+ * @ini_cfg: Max configuration of nss, chains supported for vdev.
  */
 struct mlme_legacy_priv {
 	bool chan_switch_in_progress;
@@ -53,6 +55,8 @@ struct mlme_legacy_priv {
 	bool vdev_start_failed;
 	bool connection_fail;
 	enum vdev_assoc_type assoc_type;
+	struct wlan_mlme_nss_chains dynamic_cfg;
+	struct wlan_mlme_nss_chains ini_cfg;
 };
 
 /**
@@ -141,6 +145,24 @@ bool mlme_is_connection_fail(struct wlan_objmgr_vdev *vdev);
 QDF_STATUS
 mlme_set_connection_fail(struct wlan_objmgr_vdev *vdev, bool val);
 
+/**
+ * mlme_get_dynamic_vdev_config() - get the vdev dynamic config params
+ * @vdev: vdev pointer
+ *
+ * Return: pointer to the dynamic vdev config structure
+ */
+struct wlan_mlme_nss_chains *mlme_get_dynamic_vdev_config(
+					struct wlan_objmgr_vdev *vdev);
+
+/**
+ * mlme_get_ini_vdev_config() - get the vdev ini config params
+ * @vdev: vdev pointer
+ *
+ * Return: pointer to the ini vdev config structure
+ */
+struct wlan_mlme_nss_chains *mlme_get_ini_vdev_config(
+					struct wlan_objmgr_vdev *vdev);
+
 /**
  * mlme_get_vdev_start_failed() - get mlme priv vdev restart fail flag
  * @vdev: vdev pointer

+ 34 - 0
mlme/core/src/wlan_mlme_vdev_mgr_interface.c

@@ -595,6 +595,40 @@ mlme_set_vdev_start_failed(struct wlan_objmgr_vdev *vdev, bool val)
 	return QDF_STATUS_SUCCESS;
 }
 
+struct wlan_mlme_nss_chains *mlme_get_dynamic_vdev_config(
+				struct wlan_objmgr_vdev *vdev)
+{
+	struct vdev_mlme_obj *vdev_mlme;
+	struct mlme_legacy_priv *mlme_priv;
+
+	vdev_mlme = wlan_vdev_mlme_get_cmpt_obj(vdev);
+	if (!vdev_mlme) {
+		mlme_err("vdev component object is NULL");
+		return NULL;
+	}
+
+	mlme_priv = vdev_mlme->legacy_vdev_ptr;
+
+	return &mlme_priv->dynamic_cfg;
+}
+
+struct wlan_mlme_nss_chains *mlme_get_ini_vdev_config(
+				struct wlan_objmgr_vdev *vdev)
+{
+	struct vdev_mlme_obj *vdev_mlme;
+	struct mlme_legacy_priv *mlme_priv;
+
+	vdev_mlme = wlan_vdev_mlme_get_cmpt_obj(vdev);
+	if (!vdev_mlme) {
+		mlme_err("vdev component object is NULL");
+		return NULL;
+	}
+
+	mlme_priv = vdev_mlme->legacy_vdev_ptr;
+
+	return &mlme_priv->ini_cfg;
+}
+
 bool mlme_get_vdev_start_failed(struct wlan_objmgr_vdev *vdev)
 {
 	struct vdev_mlme_obj *vdev_mlme;