qcacmn: Define VDEV MLME component object
This change defines VDEV MLME object, and registers with object manager to
be notified on creation/destroy, and also initializes MLME SM
Change-Id: I75bb7de7326e4bbed21ef9653427c4e0694c3ffc
CRs-Fixed: 2307722
diff --git a/umac/cmn_services/inc/wlan_cmn.h b/umac/cmn_services/inc/wlan_cmn.h
index bc654a3..9deffaf 100644
--- a/umac/cmn_services/inc/wlan_cmn.h
+++ b/umac/cmn_services/inc/wlan_cmn.h
@@ -442,12 +442,14 @@
* @WLAN_BAND_2_4_GHZ: 2.4 GHz band
* @WLAN_BAND_5_GHZ: 5 GHz band
* @WLAN_BAND_4_9_GHZ: 4.9 GHz band
+ * @WLAN_BAND_NUM_MAX: Max num band
*/
enum wlan_band {
WLAN_BAND_ALL,
WLAN_BAND_2_4_GHZ,
WLAN_BAND_5_GHZ,
WLAN_BAND_4_9_GHZ,
+ WLAN_BAND_NUM_MAX,
};
/**
diff --git a/umac/cmn_services/obj_mgr/inc/wlan_objmgr_pdev_obj.h b/umac/cmn_services/obj_mgr/inc/wlan_objmgr_pdev_obj.h
index 3dcdf17..e83980a 100644
--- a/umac/cmn_services/obj_mgr/inc/wlan_objmgr_pdev_obj.h
+++ b/umac/cmn_services/obj_mgr/inc/wlan_objmgr_pdev_obj.h
@@ -137,9 +137,11 @@
* struct wlan_objmgr_pdev_mlme - pdev object mlme structure
* @pdev_op_flags: PDEV operation flags, can be used to know the
* operation status (deletion progress, etc)
+ * @mlme_register_ops: Call back to register MLME legacy APIs
*/
struct wlan_objmgr_pdev_mlme {
uint32_t pdev_op_flags;
+ QDF_STATUS (*mlme_register_ops)(void *vdev_mlme);
};
/**
diff --git a/umac/cmn_services/obj_mgr/inc/wlan_objmgr_vdev_obj.h b/umac/cmn_services/obj_mgr/inc/wlan_objmgr_vdev_obj.h
index d8dad81..7c0e467 100644
--- a/umac/cmn_services/obj_mgr/inc/wlan_objmgr_vdev_obj.h
+++ b/umac/cmn_services/obj_mgr/inc/wlan_objmgr_vdev_obj.h
@@ -284,7 +284,8 @@
/**
* struct wlan_objmgr_vdev_mlme - VDEV MLME specific sub structure
* @vdev_opmode: Opmode of VDEV
- * @mlme_state: VDEV state
+ * @mlme_state: VDEV MLME SM state
+ * @mlme_state: VDEV MLME SM substate
* @bss_chan: BSS channel
* @des_chan: Desired channel, for STA Desired may not be used
* @nss: Num. Spatial streams
@@ -296,6 +297,7 @@
* @vdev_feat_ext_caps: VDEV Extended feature caps
* @max_rate: MAX rate
* @tx_mgmt_rate: TX Mgmt. Rate
+ * @per_band_mgmt_rate: Per-band TX Mgmt. Rate
* @vdev_op_flags: Operation flags
* @mataddr[]: MAT address
* @macaddr[]: VDEV self MAC address
@@ -305,8 +307,9 @@
struct wlan_objmgr_vdev_mlme {
enum QDF_OPMODE vdev_opmode;
enum wlan_vdev_state mlme_state;
- struct wlan_channel *bss_chan; /* Define wlan_channel */
- struct wlan_channel *des_chan; /*TODO ??? */
+ enum wlan_vdev_state mlme_substate;
+ struct wlan_channel *bss_chan;
+ struct wlan_channel *des_chan;
uint8_t nss;
uint8_t tx_chainmask;
uint8_t rx_chainmask;
@@ -316,6 +319,7 @@
uint32_t vdev_feat_ext_caps;
uint32_t max_rate;
uint32_t tx_mgmt_rate;
+ uint32_t per_band_mgmt_rate[WLAN_BAND_NUM_MAX];
uint32_t vdev_op_flags;
uint8_t mataddr[QDF_MAC_ADDR_SIZE];
uint8_t macaddr[QDF_MAC_ADDR_SIZE];