qca-wifi: Disable radar detection after radar found on precac chan
When radar is detected on a zero-wait-precac channel, the precac channel
changes but the phyerror buffers for the previous precac channel keep
coming, affecting the newly configured precac channel and creating false
detects.
Consider, a Cascade AP operating in home channel 36VHT80 and the precac
channel is 52VHT80. When the radar is injected on channel 52VHT80, the
precac channel changes to the next precac channel 100VHT80 but still
continues to receive the queued phyerror buffers, causing radar detects
on channel 100VHT80(false detects with respect to channel 100VHT80).
Disable radar detection after radar got detected on the precac channel.
CRs-Fixed: 2812335
Change-Id: I1e06c53f00e596d9142f3aeb25a00b9da088538b
diff --git a/umac/dfs/core/src/misc/dfs_zero_cac.c b/umac/dfs/core/src/misc/dfs_zero_cac.c
index 6f3fa15..61c309e 100644
--- a/umac/dfs/core/src/misc/dfs_zero_cac.c
+++ b/umac/dfs/core/src/misc/dfs_zero_cac.c
@@ -5160,6 +5160,19 @@
radar_found->detector_id,
nol_freq_list,
num_channels);
+ /*
+ * EV 129487 : We have detected radar in the channel,
+ * stop processing PHY error data as this can cause
+ * false detect in the new channel while channel
+ * change is in progress.
+ */
+
+ if (!dfs->dfs_is_offload_enabled) {
+ dfs_radar_disable(dfs);
+ dfs_second_segment_radar_disable(dfs);
+ dfs_reset_radarq(dfs);
+ }
+
if (is_radar_source_agile)
utils_dfs_agile_sm_deliver_evt(dfs->dfs_pdev_obj,
DFS_AGILE_SM_EV_ADFS_RADAR);