浏览代码

qcacmn: Fill in the subchannel frequency list even if it is an HT20 mode

Issue: mode was set to HT20 and marksubchannel was enabled. We injected
radar into the HT20 primary channel. The primary channel is not being added
to NOL when marksubchannel is enabled because the current subchannel
frequency list(freq_offset->freq[i]) is not being filled.

To fix this, Even if it is an HT20 mode, fill the subchannel frequency
list(freq_offset->freq[i]) based on offset.

Change-Id: I571ba60c755e7701a21db89f917c953ffa9716a6
CRs-Fixed: 3244971
Jithender Miryala 3 年之前
父节点
当前提交
7251cd10dc
共有 1 个文件被更改,包括 13 次插入15 次删除
  1. 13 15
      umac/dfs/core/src/misc/dfs_process_radar_found_ind.c

+ 13 - 15
umac/dfs/core/src/misc/dfs_process_radar_found_ind.c

@@ -364,23 +364,21 @@ dfs_find_radar_affected_subchans_for_freq(struct wlan_dfs *dfs,
 		 radar_found->freq_offset, radar_found->is_chirp,
 		 flag, freq_center);
 
-	if ((WLAN_IS_CHAN_A(curchan)) || WLAN_IS_CHAN_MODE_20(curchan)) {
-		freq_offset.offset[CENTER_CH] = freq_center;
-	} else {
-		ch_width = dfs_chan_to_ch_width(curchan);
-		if (ch_width == BW_INVALID) {
-			dfs_err(dfs, WLAN_DEBUG_DFS,
-				"channel flag=%d is invalid", flag);
-			return 0;
-		}
+	ch_width = dfs_chan_to_ch_width(curchan);
+	if (ch_width == BW_INVALID) {
+		dfs_err(dfs, WLAN_DEBUG_DFS,
+			"channel flag=%d is invalid", flag);
+		return 0;
+	}
 
-		if (radar_found->is_chirp || !(abs(sidx) % DFS_BOUNDARY_SIDX)) {
-			freq_offset.offset[LEFT_CH] -= DFS_CHIRP_OFFSET;
-			freq_offset.offset[RIGHT_CH] += DFS_CHIRP_OFFSET;
-		}
-		dfs_find_20mhz_subchans_from_offsets(&freq_offset, freq_center,
-						     ch_width);
+	if (radar_found->is_chirp || !(abs(sidx) % DFS_BOUNDARY_SIDX)) {
+		freq_offset.offset[LEFT_CH] -= DFS_CHIRP_OFFSET;
+		freq_offset.offset[RIGHT_CH] += DFS_CHIRP_OFFSET;
 	}
+
+	dfs_find_20mhz_subchans_from_offsets(&freq_offset, freq_center,
+					     ch_width);
+
 	n_cur_subchans =
 	    dfs_get_bonding_channels_for_freq(dfs, curchan,
 					      radar_found->segment_id,