qcacmn: Do not start Spectral Scan if RCAC is enabled

Agile scans (preCAC/RCAC) use the Agile Engine which is also needed
for the Agile spectral scan. Hence, both cannot run at the same time.

Currently, if Agile preCAC is enabled, Agile spectral scan is not
started. Do not start the spectral scan if either RCAC is enabled or
preCAC is enabled.

Change-Id: I242c28c2c3f8872ceab6314dde80361c283d3ac1
CRs-Fixed: 2922250
This commit is contained in:
Ananya Barat 2021-04-20 17:27:29 +05:30 committed by Madan Koyyalamudi
parent 10ec6a98fd
commit b76f24187d

View File

@ -4435,7 +4435,8 @@ target_if_is_aspectral_prohibited_by_adfs(struct wlan_objmgr_psoc *psoc,
{
bool *is_aspectral_prohibited = arg;
struct wlan_objmgr_pdev *cur_pdev = object;
bool is_agile_dfs_enabled_cur_pdev = false;
bool is_agile_precac_enabled_cur_pdev = false;
bool is_agile_rcac_enabled_cur_pdev = false;
QDF_STATUS status;
qdf_assert_always(is_aspectral_prohibited);
@ -4447,15 +4448,27 @@ target_if_is_aspectral_prohibited_by_adfs(struct wlan_objmgr_psoc *psoc,
status = ucfg_dfs_get_agile_precac_enable
(cur_pdev,
&is_agile_dfs_enabled_cur_pdev);
&is_agile_precac_enabled_cur_pdev);
if (QDF_IS_STATUS_ERROR(status)) {
spectral_err("Get agile precac failed, prohibiting aSpectral");
*is_aspectral_prohibited = true;
return;
}
if (is_agile_dfs_enabled_cur_pdev) {
spectral_err("aDFS is in progress on one of the pdevs");
status = ucfg_dfs_get_rcac_enable(cur_pdev,
&is_agile_rcac_enabled_cur_pdev);
if (QDF_IS_STATUS_ERROR(status)) {
spectral_err("Get agile RCAC failed, prohibiting aSpectral");
*is_aspectral_prohibited = true;
return;
}
if (is_agile_precac_enabled_cur_pdev) {
spectral_err("aDFS preCAC is in progress on one of the pdevs");
*is_aspectral_prohibited = true;
} else if (is_agile_rcac_enabled_cur_pdev) {
spectral_err("aDFS RCAC is in progress on one of the pdevs");
*is_aspectral_prohibited = true;
}
}