|
@@ -1598,62 +1598,6 @@ static void mlme_ext_handler_destroy(struct vdev_mlme_obj *vdev_mlme)
|
|
|
qdf_mem_free(vdev_mlme->ext_vdev_ptr);
|
|
|
vdev_mlme->ext_vdev_ptr = NULL;
|
|
|
}
|
|
|
-/**
|
|
|
- * vdevmgr_mlme_ext_hdl_create () - Create mlme legacy priv object
|
|
|
- * @vdev_mlme: vdev mlme object
|
|
|
- *
|
|
|
- * Return: QDF_STATUS
|
|
|
- */
|
|
|
-static
|
|
|
-QDF_STATUS vdevmgr_mlme_ext_hdl_create(struct vdev_mlme_obj *vdev_mlme)
|
|
|
-{
|
|
|
- QDF_STATUS status;
|
|
|
-
|
|
|
- mlme_legacy_debug("vdev id = %d ",
|
|
|
- vdev_mlme->vdev->vdev_objmgr.vdev_id);
|
|
|
- vdev_mlme->ext_vdev_ptr =
|
|
|
- qdf_mem_malloc(sizeof(struct mlme_legacy_priv));
|
|
|
- if (!vdev_mlme->ext_vdev_ptr)
|
|
|
- return QDF_STATUS_E_NOMEM;
|
|
|
-
|
|
|
- mlme_init_rate_config(vdev_mlme);
|
|
|
- mlme_init_connect_chan_info_config(vdev_mlme);
|
|
|
- mlme_cm_alloc_roam_stats_info(vdev_mlme);
|
|
|
- vdev_mlme->ext_vdev_ptr->connect_info.fils_con_info = NULL;
|
|
|
- mlme_init_wait_for_key_timer(vdev_mlme->vdev,
|
|
|
- &vdev_mlme->ext_vdev_ptr->wait_key_timer);
|
|
|
-
|
|
|
- qdf_wake_lock_create(
|
|
|
- &vdev_mlme->ext_vdev_ptr->bss_color_change_wakelock,
|
|
|
- "bss_color_change_wakelock");
|
|
|
- qdf_runtime_lock_init(
|
|
|
- &vdev_mlme->ext_vdev_ptr->bss_color_change_runtime_lock);
|
|
|
- qdf_runtime_lock_init(
|
|
|
- &vdev_mlme->ext_vdev_ptr->disconnect_runtime_lock);
|
|
|
-
|
|
|
- sme_get_vdev_type_nss(wlan_vdev_mlme_get_opmode(vdev_mlme->vdev),
|
|
|
- &vdev_mlme->proto.generic.nss_2g,
|
|
|
- &vdev_mlme->proto.generic.nss_5g);
|
|
|
-
|
|
|
- status = mlme_get_vdev_types(wlan_vdev_mlme_get_opmode(vdev_mlme->vdev),
|
|
|
- &vdev_mlme->mgmt.generic.type,
|
|
|
- &vdev_mlme->mgmt.generic.subtype);
|
|
|
- if (QDF_IS_STATUS_ERROR(status)) {
|
|
|
- mlme_err("Get vdev type failed; status:%d", status);
|
|
|
- mlme_ext_handler_destroy(vdev_mlme);
|
|
|
- return status;
|
|
|
- }
|
|
|
-
|
|
|
- status = vdev_mgr_create_send(vdev_mlme);
|
|
|
- if (QDF_IS_STATUS_ERROR(status)) {
|
|
|
- mlme_err("Failed to create vdev for vdev id %d",
|
|
|
- wlan_vdev_get_id(vdev_mlme->vdev));
|
|
|
- mlme_ext_handler_destroy(vdev_mlme);
|
|
|
- return status;
|
|
|
- }
|
|
|
-
|
|
|
- return status;
|
|
|
-}
|
|
|
|
|
|
static QDF_STATUS
|
|
|
mlme_wma_vdev_detach_post_cb(struct scheduler_msg *msg)
|
|
@@ -1718,6 +1662,63 @@ QDF_STATUS vdevmgr_mlme_ext_hdl_destroy(struct vdev_mlme_obj *vdev_mlme)
|
|
|
return QDF_STATUS_SUCCESS;
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * vdevmgr_mlme_ext_hdl_create () - Create mlme legacy priv object
|
|
|
+ * @vdev_mlme: vdev mlme object
|
|
|
+ *
|
|
|
+ * Return: QDF_STATUS
|
|
|
+ */
|
|
|
+static
|
|
|
+QDF_STATUS vdevmgr_mlme_ext_hdl_create(struct vdev_mlme_obj *vdev_mlme)
|
|
|
+{
|
|
|
+ QDF_STATUS status;
|
|
|
+
|
|
|
+ mlme_legacy_debug("vdev id = %d ",
|
|
|
+ vdev_mlme->vdev->vdev_objmgr.vdev_id);
|
|
|
+ vdev_mlme->ext_vdev_ptr =
|
|
|
+ qdf_mem_malloc(sizeof(struct mlme_legacy_priv));
|
|
|
+ if (!vdev_mlme->ext_vdev_ptr)
|
|
|
+ return QDF_STATUS_E_NOMEM;
|
|
|
+
|
|
|
+ mlme_init_rate_config(vdev_mlme);
|
|
|
+ mlme_init_connect_chan_info_config(vdev_mlme);
|
|
|
+ mlme_cm_alloc_roam_stats_info(vdev_mlme);
|
|
|
+ vdev_mlme->ext_vdev_ptr->connect_info.fils_con_info = NULL;
|
|
|
+ mlme_init_wait_for_key_timer(vdev_mlme->vdev,
|
|
|
+ &vdev_mlme->ext_vdev_ptr->wait_key_timer);
|
|
|
+
|
|
|
+ qdf_wake_lock_create(
|
|
|
+ &vdev_mlme->ext_vdev_ptr->bss_color_change_wakelock,
|
|
|
+ "bss_color_change_wakelock");
|
|
|
+ qdf_runtime_lock_init(
|
|
|
+ &vdev_mlme->ext_vdev_ptr->bss_color_change_runtime_lock);
|
|
|
+ qdf_runtime_lock_init(
|
|
|
+ &vdev_mlme->ext_vdev_ptr->disconnect_runtime_lock);
|
|
|
+
|
|
|
+ sme_get_vdev_type_nss(wlan_vdev_mlme_get_opmode(vdev_mlme->vdev),
|
|
|
+ &vdev_mlme->proto.generic.nss_2g,
|
|
|
+ &vdev_mlme->proto.generic.nss_5g);
|
|
|
+
|
|
|
+ status = mlme_get_vdev_types(wlan_vdev_mlme_get_opmode(vdev_mlme->vdev),
|
|
|
+ &vdev_mlme->mgmt.generic.type,
|
|
|
+ &vdev_mlme->mgmt.generic.subtype);
|
|
|
+ if (QDF_IS_STATUS_ERROR(status)) {
|
|
|
+ mlme_err("Get vdev type failed; status:%d", status);
|
|
|
+ mlme_ext_handler_destroy(vdev_mlme);
|
|
|
+ return status;
|
|
|
+ }
|
|
|
+
|
|
|
+ status = vdev_mgr_create_send(vdev_mlme);
|
|
|
+ if (QDF_IS_STATUS_ERROR(status)) {
|
|
|
+ mlme_err("Failed to create vdev for vdev id %d",
|
|
|
+ wlan_vdev_get_id(vdev_mlme->vdev));
|
|
|
+ vdevmgr_mlme_ext_hdl_destroy(vdev_mlme);
|
|
|
+ return status;
|
|
|
+ }
|
|
|
+
|
|
|
+ return status;
|
|
|
+}
|
|
|
+
|
|
|
#ifdef WLAN_FEATURE_DYNAMIC_MAC_ADDR_UPDATE
|
|
|
static
|
|
|
QDF_STATUS vdevmgr_mlme_vdev_send_set_mac_addr(struct qdf_mac_addr mac_addr,
|