Quellcode durchsuchen

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 vor 7 Jahren
Ursprung
Commit
1f98e9fa79
2 geänderte Dateien mit 4 neuen und 1 gelöschten Zeilen
  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;