瀏覽代碼

qcacld-3.0: Add check before SAP / GO Restart

In STA+P2P-GO DFS SCC concurrency when INI
g_move_sap_go_1st_on_dfs_sta_csa is set, the movement of P2P-GO / SAP
is reversed. i.e. upon getting CSA on STA interface, P2P-GO will move
first before STA's movement.

SCC is enforced after STA moves and observes 1st beacon on the new
channel. Add check here to avoid call to legacy flow of restarting
SAP / GO as this has to be triggered only when 1st beacon is observed.

This is applicable only for special case where SAP / GO moves 1st
before STA's movement.

Change-Id: I7e804a0f7e7d4c4739f05f68f471184503ca2930
CRs-Fixed: 3431391
Rachit Kankane 2 年之前
父節點
當前提交
430b5d9224
共有 1 個文件被更改,包括 12 次插入3 次删除
  1. 12 3
      core/hdd/src/wlan_hdd_assoc.c

+ 12 - 3
core/hdd/src/wlan_hdd_assoc.c

@@ -2148,7 +2148,8 @@ static void hdd_roam_channel_switch_handler(struct hdd_adapter *adapter,
 	mac_handle_t mac_handle = hdd_adapter_get_mac_handle(adapter);
 	struct hdd_station_ctx *sta_ctx;
 	uint8_t connected_vdev;
-	bool notify = true;
+	bool notify = true, is_sap_go_moved_before_sta = false;
+	struct wlan_objmgr_vdev *vdev;
 
 	/* Enable Roaming on STA interface which was disabled before CSA */
 	if (adapter->device_mode == QDF_STA_MODE)
@@ -2198,8 +2199,16 @@ static void hdd_roam_channel_switch_handler(struct hdd_adapter *adapter,
 	if (QDF_IS_STATUS_ERROR(status))
 		hdd_debug("set hw mode change not done");
 
-	policy_mgr_check_concurrent_intf_and_restart_sap(hdd_ctx->psoc,
-			!!adapter->session.ap.sap_config.acs_cfg.acs_mode);
+	vdev = hdd_objmgr_get_vdev_by_user(adapter, WLAN_DP_ID);
+	if (vdev) {
+		is_sap_go_moved_before_sta =
+			wlan_vdev_mlme_is_sap_go_move_before_sta(vdev);
+		hdd_objmgr_put_vdev_by_user(vdev, WLAN_DP_ID);
+	}
+
+	if (!is_sap_go_moved_before_sta)
+		policy_mgr_check_concurrent_intf_and_restart_sap(hdd_ctx->psoc,
+			    !!adapter->session.ap.sap_config.acs_cfg.acs_mode);
 	wlan_twt_concurrency_update(hdd_ctx);
 }