Browse 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 7 năm trước cách đây
mục cha
commit
1f98e9fa79
2 tập tin đã thay đổi với 4 bổ sung1 xóa
  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;