Sfoglia il codice sorgente

qcacmn: Use 80MHz as next BW after radar during 80p80MHz

With bandwidth reduction enabled, when radar is detected during
80p80MHz operation, if the primary segment is unaffected, the
next expected BW for the device is 80MHz. However, the API
reg_set_channel_params has the following bw precedence list:
80P80 -> 160 -> 80 -> 40 -> 20 MHz.

This is valid in normal channel change cases but when used for
the bandwidth reduction feature, 80P80MHz should be considered
same as 160MHz and the next bandwidth (to be checked) should be
80MHz.

Update the channel width in the channel params to 80MHz if
the current channel is 80P80MHz and call the regulatory API
to check channel availability with the updated params.

CRs-Fixed: 2805939
Change-Id: I4337a3a797d1c4b0ef19e47d0933d4dd292733b5
Vignesh Mohan 4 anni fa
parent
commit
46be7cdcbd
1 ha cambiato i file con 9 aggiunte e 0 eliminazioni
  1. 9 0
      umac/dfs/dispatcher/src/wlan_dfs_utils_api.c

+ 9 - 0
umac/dfs/dispatcher/src/wlan_dfs_utils_api.c

@@ -1246,6 +1246,15 @@ QDF_STATUS utils_dfs_bw_reduced_channel_for_freq(
 
 	if (ch_state == CHANNEL_STATE_DFS ||
 	    ch_state == CHANNEL_STATE_ENABLE) {
+		/* If the current channel is 80P80MHz and radar is detected on
+		 * the channel, the next highest bandwidth that maybe available
+		 * is 80MHz. Since the current regulatory algorithm reduces the
+		 * bandwidth from 80P80MHz to 160MHz, provide the channel
+		 * width as 80MHz if current channel is 80P80MHz.
+		 */
+		if (chan_params->ch_width == CH_WIDTH_80P80MHZ)
+			chan_params->ch_width = CH_WIDTH_80MHZ;
+
 		chan_params->mhz_freq_seg0 =
 			dfs_curchan->dfs_ch_mhz_freq_seg1;
 		chan_params->mhz_freq_seg1 =