Browse Source

qcacmn: dfs_set_cfreq2 may be set wrongly when start SAP on 2G channel

dfs_curchan isn't reset when start vdev on 2G channel, can't use it.
Reproduce steps:
1. DUT vdev1 SAP started on 5G DFS channel with HE160,
WMI_CHAN_FLAG_DFS_CFREQ2 is set.
2. DUT vdev1 SAP switched to 2G channel.
Found WMI_CHAN_FLAG_DFS_CFREQ2 still set.

Change-Id: Ic5282ddf667af92365f3e43274a010a26a5a0715
CRs-Fixed: 2787305
Jianmin Zhu 4 năm trước cách đây
mục cha
commit
f7767ae001
1 tập tin đã thay đổi với 5 bổ sung2 xóa
  1. 5 2
      umac/mlme/vdev_mgr/core/src/vdev_mgr_ops.c

+ 5 - 2
umac/mlme/vdev_mgr/core/src/vdev_mgr_ops.c

@@ -151,7 +151,7 @@ static QDF_STATUS vdev_mgr_start_param_update(
 
 	op_mode = wlan_vdev_mlme_get_opmode(vdev);
 	if (vdev_mgr_is_opmode_sap_or_p2p_go(op_mode) &&
-	    vdev_mgr_is_49G_5G_6G_chan_freq(des_chan->ch_freq))
+	    vdev_mgr_is_49G_5G_6G_chan_freq(des_chan->ch_freq)) {
 		tgt_dfs_set_current_channel_for_freq(pdev, des_chan->ch_freq,
 						     des_chan->ch_flags,
 						     des_chan->ch_flagext,
@@ -161,6 +161,10 @@ static QDF_STATUS vdev_mgr_start_param_update(
 						     des_chan->ch_cfreq1,
 						     des_chan->ch_cfreq2,
 						     &is_dfs_chan_updated);
+		if (des_chan->ch_cfreq2)
+			param->channel.dfs_set_cfreq2 =
+				utils_is_dfs_cfreq2_ch(pdev);
+	}
 
 	/* The Agile state machine should be stopped only once for the channel
 	 * change. If  the same channel is being sent to the FW then do
@@ -189,7 +193,6 @@ static QDF_STATUS vdev_mgr_start_param_update(
 	param->channel.quarter_rate = mlme_obj->mgmt.rate_info.quarter_rate;
 	param->channel.dfs_set = wlan_reg_is_dfs_for_freq(pdev,
 							  des_chan->ch_freq);
-	param->channel.dfs_set_cfreq2 = utils_is_dfs_cfreq2_ch(pdev);
 	param->channel.is_chan_passive =
 		utils_is_dfs_chan_for_freq(pdev, param->channel.mhz);
 	param->channel.allow_ht = mlme_obj->proto.ht_info.allow_ht;