Selaa lähdekoodia

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 vuotta sitten
vanhempi
sitoutus
7251cd10dc
1 muutettua tiedostoa jossa 13 lisäystä ja 15 poistoa
  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,