Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 56847667 authored by Jianmin Zhu's avatar Jianmin Zhu Committed by snandini
Browse files

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
parent 261a5c59
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -126,7 +126,7 @@ static QDF_STATUS vdev_mgr_start_param_update(
	if ((op_mode == QDF_SAP_MODE || op_mode == QDF_P2P_GO_MODE) &&
	    (WLAN_REG_IS_5GHZ_CH_FREQ(des_chan->ch_freq) ||
	     WLAN_REG_IS_49GHZ_FREQ(des_chan->ch_freq) ||
	     WLAN_REG_IS_6GHZ_CHAN_FREQ(des_chan->ch_freq)))
	     WLAN_REG_IS_6GHZ_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,
@@ -135,7 +135,10 @@ static QDF_STATUS vdev_mgr_start_param_update(
						     des_chan->ch_freq_seg2,
						     des_chan->ch_cfreq1,
						     des_chan->ch_cfreq2);

		if (des_chan->ch_cfreq2)
			param->channel.dfs_set_cfreq2 =
				utils_is_dfs_cfreq2_ch(pdev);
	}
	param->beacon_interval = mlme_obj->proto.generic.beacon_interval;
	param->dtim_period = mlme_obj->proto.generic.dtim_period;
	param->disable_hw_ack = mlme_obj->mgmt.generic.disable_hw_ack;
@@ -155,7 +158,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;