Răsfoiți Sursa

qcacmn: Support connect/disconnect request due to cfg change

Add enum to indicate the connect or disconnect request initiated
due to a config change.

Change-Id: I68e058f37f00b548076874c97903dc78d4f4cb25
CRs-Fixed: 2826533
Himanshu Batra 4 ani în urmă
părinte
comite
70fc6c603c

+ 2 - 1
umac/mlme/connection_mgr/core/src/wlan_cm_disconnect.c

@@ -517,7 +517,8 @@ cm_handle_discon_req_in_non_connected_state(struct cnx_mgr *cm_ctx,
 	 * been received, hence skip the non-osif disconnect request.
 	 */
 	if (cur_state == WLAN_CM_S_CONNECTING &&
-	    cm_req->req.source != CM_OSIF_DISCONNECT) {
+	    (cm_req->req.source != CM_OSIF_DISCONNECT &&
+	    cm_req->req.source != CM_OSIF_CFG_DISCONNECT)) {
 		mlme_info("Vdev %d ignore disconnect req from source %d in state %d",
 			  wlan_vdev_get_id(cm_ctx->vdev), cm_req->req.source,
 			  cm_state_substate);

+ 1 - 0
umac/mlme/connection_mgr/core/src/wlan_cm_util.c

@@ -27,6 +27,7 @@ static uint32_t cm_get_prefix_for_cm_id(enum wlan_cm_source source) {
 	switch (source) {
 	case CM_OSIF_CONNECT:
 	case CM_ROAMING:
+	case CM_OSIF_CFG_CONNECT:
 		return CONNECT_REQ_PREFIX;
 	default:
 		return DISCONNECT_REQ_PREFIX;

+ 4 - 0
umac/mlme/connection_mgr/dispatcher/inc/wlan_cm_public_struct.h

@@ -119,6 +119,8 @@ struct wlan_fils_con_info {
  * @CM_INTERNAL_DISCONNECT: Internal disconnect initiated by Connection manager
  * on receiving the back to back commands
  * @CM_ROAM_DISCONNECT: Disconnect req due to HO failure
+ * @CM_OSIF_CFG_CONNECT: Connect request initiated due to config change
+ * @CM_OSIF_CFG_DISCONNECT: Disconnect request initiated due to config change
  * @CM_SOURCE_MAX: max value of connection manager source
  * @CM_SOURCE_INVALID: Invalid connection manager req source
  */
@@ -131,6 +133,8 @@ enum wlan_cm_source {
 	CM_MLME_DISCONNECT,
 	CM_INTERNAL_DISCONNECT,
 	CM_ROAM_DISCONNECT,
+	CM_OSIF_CFG_CONNECT,
+	CM_OSIF_CFG_DISCONNECT,
 	CM_SOURCE_MAX,
 	CM_SOURCE_INVALID = CM_SOURCE_MAX,
 };