ソースを参照

qcacmn: Check CAC status on RCAC channel

In case of RCAC, check if CAC is completed only on the RCAC
channel and do not check the CAC info on current operating
channel.

After RCAC complete is sent to FW, the RCAC tree info is
cleared. In case of RCAC, check the CAC done info only
on RCAC channel.

CRs-Fixed: 3231140
Change-Id: I976b2b5e29ebdf2dc4fb2e5df1f2feb700c972af
Vijay Krishnan 3 年 前
コミット
3452af5abe
1 ファイル変更9 行追加1 行削除
  1. 9 1
      umac/dfs/core/src/misc/dfs_cac.c

+ 9 - 1
umac/dfs/core/src/misc/dfs_cac.c

@@ -467,6 +467,13 @@ bool dfs_is_cac_required(struct wlan_dfs *dfs,
 		return false;
 	}
 
+	/* In case of RCAC, check if CAC is completed only on the RCAC channel
+	 * and do not check the CAC info on current operating channel.
+	 */
+	if (dfs_is_agile_rcac_enabled(dfs) &&
+	    dfs_is_rcac_cac_done(dfs, cur_chan, prev_chan))
+		return false;
+
 	/* If the channel has completed PRE-CAC then CAC can be skipped here. */
 	if (dfs_is_precac_done(dfs, cur_chan)) {
 		dfs_debug(dfs, WLAN_DEBUG_DFS,
@@ -487,7 +494,8 @@ bool dfs_is_cac_required(struct wlan_dfs *dfs,
 		if (dfs_is_new_chan_subset_of_old_chan(dfs,
 						       cur_chan,
 						       cac_started_chan)) {
-			*continue_current_cac = true;
+			if (continue_current_cac)
+				*continue_current_cac = true;
 		} else {
 			/* New CAC is needed, cancel the running CAC
 			 * timer.