Przeglądaj źródła

qcacmn: force non-assoc link as primary for single soc

In force non-assoc link as primary case, If MLD is within single SOC, then
stop assoc link to become primary umac and allow the non-assoc link as
selected to be the primary umac.

CRs-Fixed: 3564005
Change-Id: I3f2d681ccacd9e449c1f1b74fa9df23429c11a1c
Krunalsinh Padhar 1 rok temu
rodzic
commit
3d44d3fb6f
1 zmienionych plików z 8 dodań i 0 usunięć
  1. 8 0
      umac/mlo_mgr/src/wlan_mlo_mgr_primary_umac.c

+ 8 - 0
umac/mlo_mgr/src/wlan_mlo_mgr_primary_umac.c

@@ -360,6 +360,7 @@ void mlo_peer_assign_primary_umac(
 	struct wlan_mlo_link_peer_entry *peer_ent_iter;
 	uint8_t i;
 	uint8_t primary_umac_set = 0;
+	struct mlo_mgr_context *mlo_ctx = wlan_objmgr_get_mlo_ctx();
 
 	/* If MLD is within single SOC, then assoc link becomes
 	 * primary umac
@@ -373,6 +374,13 @@ void mlo_peer_assign_primary_umac(
 			peer_entry->is_primary = false;
 		}
 	} else {
+		if ((wlan_peer_mlme_is_assoc_peer(peer_entry->link_peer)) &&
+		    (ml_peer->max_links > 1) &&
+		    (mlo_ctx->force_non_assoc_prim_umac)) {
+			peer_entry->is_primary = false;
+			return;
+		}
+
 		/* If this peer PSOC is not derived as Primary PSOC,
 		 * mark is_primary as false
 		 */