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
This commit is contained in:
Jianmin Zhu
2020-09-28 21:21:01 +08:00
committed by snandini
parent 79da1010f3
commit f7767ae001

View File

@@ -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;