Ver Fonte

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 há 7 anos atrás
pai
commit
1f98e9fa79
2 ficheiros alterados com 4 adições e 1 exclusões
  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;