Browse Source

qcacld-3.0: Add support for connection failure

Add vdev manager support for connection failure

Change-Id: I996e2bd14c7693793178edffa83d704a57580d93
CRs-Fixed: 2326164
Sandeep Puligilla 6 năm trước cách đây
mục cha
commit
463e30d4c6

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

@@ -32,11 +32,13 @@
  * @hidden_ssid_restart_in_progress: flag to indicate hidden ssid restart is
  *                                   in progress
  * @vdev_start_failed: flag to indicate that vdev start failed.
+ * @connection_fail: flag to indicate connection failed
  */
 struct mlme_legacy_priv {
 	bool chan_switch_in_progress;
 	bool hidden_ssid_restart_in_progress;
 	bool vdev_start_failed;
+	bool connection_fail;
 };
 
 /**
@@ -107,6 +109,24 @@ bool ap_mlme_is_hidden_ssid_restart_in_progress(struct wlan_objmgr_vdev *vdev);
 QDF_STATUS
 mlme_set_vdev_start_failed(struct wlan_objmgr_vdev *vdev, bool val);
 
+/**
+ * mlme_is_connection_fail() - get connection fail flag
+ * @vdev: vdev pointer
+ *
+ * Return: value of vdev connection failure flag
+ */
+bool mlme_is_connection_fail(struct wlan_objmgr_vdev *vdev);
+
+/**
+ * mlme_set_connection_fail() - set connection failure flag
+ * @vdev: vdev pointer
+ * @val: value to be set
+ *
+ * Return: QDF_STATUS
+ */
+QDF_STATUS
+mlme_set_connection_fail(struct wlan_objmgr_vdev *vdev, bool val);
+
 /**
  * mlme_get_vdev_start_failed() - get mlme priv vdev restart fail flag
  * @vdev: vdev pointer

+ 35 - 1
mlme/core/src/wlan_mlme_vdev_mgr_interface.c

@@ -382,7 +382,7 @@ static QDF_STATUS vdevmgr_mlme_vdev_down_send(struct vdev_mlme_obj *vdev_mlme,
 static QDF_STATUS vdevmgr_notify_down_complete(struct vdev_mlme_obj *vdev_mlme,
 					       uint16_t data_len, void *data)
 {
-	return wma_ap_mlme_vdev_notify_down_complete(vdev_mlme, data_len, data);
+	return wma_mlme_vdev_notify_down_complete(vdev_mlme, data_len, data);
 }
 
 /**
@@ -507,6 +507,40 @@ bool ap_mlme_is_hidden_ssid_restart_in_progress(struct wlan_objmgr_vdev *vdev)
 	return mlme_priv->hidden_ssid_restart_in_progress;
 }
 
+QDF_STATUS mlme_set_connection_fail(struct wlan_objmgr_vdev *vdev, bool val)
+{
+	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 QDF_STATUS_E_FAILURE;
+	}
+
+	mlme_priv = (struct mlme_legacy_priv *)vdev_mlme->legacy_vdev_ptr;
+
+	mlme_priv->connection_fail = val;
+
+	return QDF_STATUS_SUCCESS;
+}
+
+bool mlme_is_connection_fail(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 false;
+	}
+
+	mlme_priv = (struct mlme_legacy_priv *)vdev_mlme->legacy_vdev_ptr;
+
+	return mlme_priv->connection_fail;
+}
+
 QDF_STATUS
 mlme_set_vdev_start_failed(struct wlan_objmgr_vdev *vdev, bool val)
 {