Prechádzať zdrojové kódy

qcacld-3.0: Don't disable dfs phyerr offload when no sap/go in DFS ch

According to FW, DFS phyerr offload should be enabled before vdev start,
otherwise FW can't start DFS phyerr offload function.

Do not send DFS phyerr offload disable wmi command before vdev stop, and
FW will handle all the necessary cleanup in vdev stop wmi command.

Without DFS phyerr offload disable wmi command, DFS phyerr offload is
enabled before vdev start.

Change-Id: Id6275e9716afb34316cf46b69dd0b4f82b73ac5d
CRs-Fixed: 2598263
bings 5 rokov pred
rodič
commit
b188056965

+ 0 - 16
components/cmn_services/policy_mgr/inc/wlan_policy_mgr_api.h

@@ -704,22 +704,6 @@ bool policy_mgr_is_any_nondfs_chnl_present(struct wlan_objmgr_psoc *psoc,
 uint32_t policy_mgr_get_dfs_beaconing_session_id(
 		struct wlan_objmgr_psoc *psoc);
 
-/**
- * policy_mgr_is_dfs_beaconing_present_except_vdev() - to find
- * if any DFS session except the given vdev id
- * @psoc: PSOC object information
- * @ch_freq: pointer to channel frequency that needs to filled
- * @vdev_id: vdev id
- *
- * If any beaconing session except given vdev id such as SAP or GO present and
- * it is on DFS channel then this function will return true
- *
- * Return: true if session is on DFS or false if session is on non-dfs channel
- */
-bool policy_mgr_is_dfs_beaconing_present_except_vdev(
-		struct wlan_objmgr_psoc *psoc, uint32_t *ch_freq,
-		uint8_t vdev_id);
-
 /**
  * policy_mgr_is_any_dfs_beaconing_session_present() - to find
  * if any DFS session

+ 0 - 38
components/cmn_services/policy_mgr/src/wlan_policy_mgr_get_set_utils.c

@@ -3154,44 +3154,6 @@ uint32_t policy_mgr_get_dfs_beaconing_session_id(
 	return session_id;
 }
 
-bool policy_mgr_is_dfs_beaconing_present_except_vdev(
-		struct wlan_objmgr_psoc *psoc, uint32_t *ch_freq,
-		uint8_t vdev_id)
-{
-	struct policy_mgr_conc_connection_info *conn_info;
-	bool status = false;
-	uint32_t conn_index = 0;
-	struct policy_mgr_psoc_priv_obj *pm_ctx;
-	struct policy_mgr_conc_connection_info info;
-	uint8_t num_cxn_del;
-
-	pm_ctx = policy_mgr_get_context(psoc);
-	if (!pm_ctx) {
-		policy_mgr_err("Invalid Context");
-		return false;
-	}
-	qdf_mutex_acquire(&pm_ctx->qdf_conc_list_lock);
-	policy_mgr_store_and_del_conn_info_by_vdev_id(
-		psoc, vdev_id, &info, &num_cxn_del);
-
-	for (conn_index = 0; conn_index < MAX_NUMBER_OF_CONC_CONNECTIONS;
-			conn_index++) {
-		conn_info = &pm_conc_connection_list[conn_index];
-		if (conn_info->in_use &&
-		    wlan_reg_is_dfs_for_freq(pm_ctx->pdev, conn_info->freq) &&
-		    (conn_info->mode == PM_SAP_MODE ||
-		     conn_info->mode == PM_P2P_GO_MODE)) {
-			*ch_freq = pm_conc_connection_list[conn_index].freq;
-			status = true;
-		}
-	}
-	if (num_cxn_del)
-		policy_mgr_restore_deleted_conn_info(psoc, &info, num_cxn_del);
-	qdf_mutex_release(&pm_ctx->qdf_conc_list_lock);
-
-	return status;
-}
-
 bool policy_mgr_is_any_dfs_beaconing_session_present(
 		struct wlan_objmgr_psoc *psoc, uint32_t *ch_freq)
 {

+ 2 - 8
core/mac/src/pe/lim/lim_utils.c

@@ -8215,7 +8215,6 @@ QDF_STATUS lim_ap_mlme_vdev_stop_send(struct vdev_mlme_obj *vdev_mlme,
 {
 	struct pe_session *session = (struct pe_session *)data;
 	QDF_STATUS status = QDF_STATUS_SUCCESS;
-	uint32_t ap_dfs_ch_freq;
 
 	if (!data) {
 		pe_err("data is NULL");
@@ -8223,15 +8222,10 @@ QDF_STATUS lim_ap_mlme_vdev_stop_send(struct vdev_mlme_obj *vdev_mlme,
 	}
 
 	if (LIM_IS_IBSS_ROLE(session) &&
-	    session->mac_ctx->lim.gLimIbssCoalescingHappened) {
+	    session->mac_ctx->lim.gLimIbssCoalescingHappened)
 		ibss_bss_delete(session->mac_ctx, session);
-	} else {
-		if (!policy_mgr_is_dfs_beaconing_present_except_vdev(
-		    session->mac_ctx->psoc, &ap_dfs_ch_freq, session->vdev_id))
-			tgt_dfs_radar_enable(
-				session->mac_ctx->pdev, 0, 0, false);
+	else
 		status =  lim_send_vdev_stop(session);
-	}
 
 	return status;
 }