From 991e2fa09202da208d686179c5c187e4a93129f1 Mon Sep 17 00:00:00 2001 From: gaurank kathpalia Date: Mon, 12 Nov 2018 21:48:06 +0530 Subject: [PATCH] qcacld-3.0: Store the nss, chain config in vdev priv obj Store the ini and dynamic configurations in the respective vdev's mlme priv obj. Change-Id: Ib7a90937799a188dd729c91e7ee248d3287951c5 CRs-Fixed: 2349201 --- components/mlme/core/inc/wlan_mlme_main.h | 22 ++++++++ components/mlme/core/src/wlan_mlme_main.c | 61 +++++++++++++++++++++++ 2 files changed, 83 insertions(+) diff --git a/components/mlme/core/inc/wlan_mlme_main.h b/components/mlme/core/inc/wlan_mlme_main.h index 386605d14046..47f4f8a0a67d 100644 --- a/components/mlme/core/inc/wlan_mlme_main.h +++ b/components/mlme/core/inc/wlan_mlme_main.h @@ -82,8 +82,12 @@ struct mlme_legacy_priv { /** * struct vdev_mlme_obj - VDEV MLME component object + * @dynamic_cfg: current configuration of nss, chains for vdev. + * @ini_cfg: Max configuration of nss, chains supported for vdev. */ struct vdev_mlme_priv_obj { + struct wlan_mlme_nss_chains dynamic_cfg; + struct wlan_mlme_nss_chains ini_cfg; }; /** @@ -115,6 +119,24 @@ mlme_vdev_object_destroyed_notification(struct wlan_objmgr_vdev *vdev, #endif +/** + * 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_psoc_object_created_notification(): mlme psoc create handler * @psoc: psoc which is going to created by objmgr diff --git a/components/mlme/core/src/wlan_mlme_main.c b/components/mlme/core/src/wlan_mlme_main.c index d2a2a28d6b4c..b88c55c3b598 100644 --- a/components/mlme/core/src/wlan_mlme_main.c +++ b/components/mlme/core/src/wlan_mlme_main.c @@ -40,6 +40,39 @@ struct wlan_mlme_psoc_obj *mlme_get_psoc_obj(struct wlan_objmgr_psoc *psoc) } #ifdef CONFIG_VDEV_SM +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; +} #else @@ -63,6 +96,34 @@ wlan_vdev_mlme_get_priv_obj(struct wlan_objmgr_vdev *vdev) return vdev_mlme; } +struct wlan_mlme_nss_chains *mlme_get_dynamic_vdev_config( + struct wlan_objmgr_vdev *vdev) +{ + struct vdev_mlme_priv_obj *vdev_mlme; + + vdev_mlme = wlan_vdev_mlme_get_priv_obj(vdev); + if (!vdev_mlme) { + mlme_err("vdev component object is NULL"); + return NULL; + } + + return &vdev_mlme->dynamic_cfg; +} + +struct wlan_mlme_nss_chains *mlme_get_ini_vdev_config( + struct wlan_objmgr_vdev *vdev) +{ + struct vdev_mlme_priv_obj *vdev_mlme; + + vdev_mlme = wlan_vdev_mlme_get_priv_obj(vdev); + if (!vdev_mlme) { + mlme_err("vdev component object is NULL"); + return NULL; + } + + return &vdev_mlme->ini_cfg; +} + QDF_STATUS mlme_vdev_object_created_notification(struct wlan_objmgr_vdev *vdev, void *arg)