Parcourir la source

qcacld-3.0: Process radar event after getting vdev start response

Do not process radar event until receiving vdev start response, because
during channel switch, radar may be detected again in the old channel.

Change-Id: I1a524e38c25f91c684fd2c4962aeaf556d2445eb
CRs-Fixed: 2175891
bings il y a 7 ans
Parent
commit
1f98e9fa79
2 fichiers modifiés avec 4 ajouts et 1 suppressions
  1. 0 1
      core/sap/src/sap_fsm.c
  2. 4 0
      core/wma/src/wma_dev_if.c

+ 0 - 1
core/sap/src/sap_fsm.c

@@ -1450,7 +1450,6 @@ void sap_dfs_set_current_channel(void *ctx)
 
 	if (wlan_reg_is_dfs_ch(pdev, sap_ctx->channel)) {
 		tgt_dfs_get_radars(pdev);
-		tgt_dfs_radar_enable(pdev, 0, 0);
 		if (sap_ctx->csr_roamProfile.disableDFSChSwitch)
 			tgt_dfs_control(pdev, DFS_SET_USENOL, &use_nol,
 					sizeof(uint32_t), NULL, NULL, &error);

+ 4 - 0
core/wma/src/wma_dev_if.c

@@ -73,6 +73,7 @@
 #include "wlan_policy_mgr_api.h"
 #include "wma_nan_datapath.h"
 #include "wlan_tgt_def_config.h"
+#include <wlan_dfs_tgt_api.h>
 #include <cdp_txrx_handle.h>
 #include "wlan_pmo_ucfg_api.h"
 #include "wlan_reg_services_api.h"
@@ -1015,6 +1016,9 @@ int wma_vdev_start_resp_handler(void *handle, uint8_t *cmd_param_info,
 		return -EINVAL;
 	}
 
+	if (wma_is_vdev_in_ap_mode(wma, resp_event->vdev_id))
+		tgt_dfs_radar_enable(wma->pdev, 0, 0);
+
 	if (resp_event->status == QDF_STATUS_SUCCESS) {
 		wma->interfaces[resp_event->vdev_id].tx_streams =
 			resp_event->cfgd_tx_streams;