qca-wifi: Reset "dfs_agile_precac_freq_mhz" after radar detect
Issue: Bring up the AP on channel 100 HE80 in ETSI domain and enable preCAC config (option preCACEn 1). The AP begins CAC on channel 100 and does preCAC on the channel 58 (the first HE80 channel in the preCAC list). The default preCACtimeout is 6 min. Inject radar on channel 100 using bangradar. AP does a VDEV RESTART to a new random channel (say 36) and aborts preCAC on channel 58. After VDEV RESTART on new random channel (say 36), AP chooses a new random channel to do preCAC and marks channel 58 as preCAC done. Channel 58 can be marked preCAC done only after 6 min of CAC completion. However, within 6 min, if primary channel detects radar, channel 58 incorrectly marked as preCAC done. When primary channel 100 is marked as NOL, "dfs_agile_precac_freq_mhz" (the variable that holds the value of the last agile frequency) which was assigned 5290MHZ (chan 58) is not cleared. "dfs_agile_precac_freq_mhz" continues to hold the preCAC channel freq 5290. After VDEV RESTART to new random channel (36), preCAC is initated again invoking dfs_start_agile_precac_timer() using a zero second timer. As "dfs_agile_precac_freq_mhz" is not 0, dfs_mark_precac_done_for_freq() marks channel 5290 (58) as preCAC done. Solution: To solve the issue mentioned above, reset "dfs_mark_precac_done_for_freq" to 0 on radar detect so that preCAC done channel is not marked incorrectly. Change-Id: If6dae4b3527f060d5512d82ebd437ea1b6db1425 CRs-Fixed: 2631779
This commit is contained in:

zatwierdzone przez
Gerrit - the friendly Code Review server

rodzic
0deee0c946
commit
96dd43c073
@@ -1812,7 +1812,7 @@ void dfs_mark_precac_nol_for_freq(struct wlan_dfs *dfs,
|
||||
if (detector_id == AGILE_DETECTOR_ID) {
|
||||
dfs_prepare_agile_precac_chan(dfs);
|
||||
} else {
|
||||
dfs->dfs_agile_precac_freq = 0;
|
||||
dfs->dfs_agile_precac_freq_mhz = 0;
|
||||
dfs_soc_obj->precac_state_started = PRECAC_NOT_STARTED;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user