瀏覽代碼

qcacld-3.0: Enance Logs to check disabled entry

Add log to check which mode, vdev and freq is
added as disabled ml link and dump disabled
links after moving vdev from connection table
to disabled link table and decrement session
count only if provided vdev entry is present
in connection table.

Change-Id: I19cd9323b7b66b29366f2ac930798da8ef91a709
CRs-Fixed: 3205975
Sheenam Monga 2 年之前
父節點
當前提交
1d217e83de

+ 2 - 0
components/cmn_services/policy_mgr/src/wlan_policy_mgr_action.c

@@ -403,7 +403,9 @@ QDF_STATUS policy_mgr_update_connection_info(struct wlan_objmgr_psoc *psoc,
 			policy_mgr_get_bw(conn_table_entry.chan_width),
 			conn_table_entry.mac_id, chain_mask,
 			nss, vdev_id, true, true, conn_table_entry.ch_flagext);
+	policy_mgr_dump_current_concurrency(psoc);
 	qdf_mutex_release(&pm_ctx->qdf_conc_list_lock);
+
 	/* do we need to change the HW mode */
 	policy_mgr_check_n_start_opportunistic_timer(psoc);
 	policy_mgr_handle_ml_sta_links_on_vdev_up_csa(psoc,

+ 1 - 0
components/cmn_services/policy_mgr/src/wlan_policy_mgr_core.c

@@ -1093,6 +1093,7 @@ void policy_mgr_update_hw_mode_conn_info(struct wlan_objmgr_psoc *psoc,
 	qdf_mutex_release(&pm_ctx->qdf_conc_list_lock);
 
 	policy_mgr_dump_connection_status_info(psoc);
+	policy_mgr_dump_current_concurrency(psoc);
 }
 
 void policy_mgr_pdev_set_hw_mode_cb(uint32_t status,

+ 24 - 18
components/cmn_services/policy_mgr/src/wlan_policy_mgr_get_set_utils.c

@@ -3137,7 +3137,8 @@ void policy_mgr_move_vdev_from_disabled_to_connection_tbl(
 
 	status = policy_mgr_delete_from_disabled_links(pm_ctx, vdev_id);
 	if (QDF_IS_STATUS_ERROR(status)) {
-		policy_mgr_err("Disabled link not found for vdev %d", vdev_id);
+		policy_mgr_debug("Disabled link not found for vdev %d",
+				 vdev_id);
 		return;
 	}
 
@@ -3168,8 +3169,8 @@ policy_mgr_add_to_disabled_links(struct policy_mgr_psoc_priv_obj *pm_ctx,
 	if (i < MAX_NUMBER_OF_DISABLE_LINK) {
 		pm_disabled_ml_links[i].freq = freq;
 		qdf_mutex_release(&pm_ctx->qdf_conc_list_lock);
-		policy_mgr_info("Disabled link already present vdev_id %d, update freq %d",
-				vdev_id, freq);
+		policy_mgr_debug("Disabled link already present vdev %d, pm_mode %d, update freq %d",
+				 vdev_id, pm_mode, freq);
 
 		return QDF_STATUS_E_EXISTS;
 	}
@@ -3181,6 +3182,8 @@ policy_mgr_add_to_disabled_links(struct policy_mgr_psoc_priv_obj *pm_ctx,
 			pm_disabled_ml_links[i].mode = pm_mode;
 			pm_disabled_ml_links[i].in_use = true;
 			pm_disabled_ml_links[i].freq = freq;
+			policy_mgr_debug("Disabled link added vdev id: %d freq: %d pm_mode %d",
+					 vdev_id, freq, pm_mode);
 			break;
 		}
 	}
@@ -3201,6 +3204,7 @@ void policy_mgr_move_vdev_from_connection_to_disabled_tbl(
 	struct policy_mgr_psoc_priv_obj *pm_ctx;
 	qdf_freq_t freq;
 	enum QDF_OPMODE mode;
+	QDF_STATUS status;
 
 	pm_ctx = policy_mgr_get_context(psoc);
 	if (!pm_ctx) {
@@ -3219,10 +3223,20 @@ void policy_mgr_move_vdev_from_connection_to_disabled_tbl(
 		return;
 	}
 	freq = wlan_get_operation_chan_freq_vdev_id(pm_ctx->pdev, vdev_id);
-	/* Remove entry if present in pm_conc_connection_list */
-	policy_mgr_decr_session_set_pcl(psoc, mode, vdev_id);
+	status = policy_mgr_check_conn_with_mode_and_vdev_id(psoc, PM_STA_MODE,
+							     vdev_id);
+	/*
+	 * Remove entry if present in pm_conc_connection_list, if not just add
+	 * it in disabled table.
+	 */
+	if (QDF_IS_STATUS_SUCCESS(status))
+		policy_mgr_decr_session_set_pcl(psoc, mode, vdev_id);
+	else
+		policy_mgr_debug("Connection tbl dont have vdev %d in STA mode, Add it in disabled tbl",
+				 vdev_id);
 
 	policy_mgr_add_to_disabled_links(pm_ctx, freq, mode, vdev_id);
+	policy_mgr_dump_current_concurrency(psoc);
 }
 
 bool
@@ -3567,6 +3581,7 @@ QDF_STATUS policy_mgr_decr_active_session(struct wlan_objmgr_psoc *psoc,
 		 * it can be present in pm_disabled_ml_links.
 		 */
 		policy_mgr_delete_from_disabled_links(pm_ctx, session_id);
+		policy_mgr_dump_current_concurrency(psoc);
 		return qdf_status;
 	}
 
@@ -5070,12 +5085,8 @@ policy_mgr_handle_sap_cli_go_ml_sta_up_csa(struct wlan_objmgr_psoc *psoc,
 	policy_mgr_debug("vdev %d: num_ml_sta %d disabled %d num_p2p_sap %d",
 			 vdev_id, num_ml_sta, num_disabled_ml_sta, num_p2p_sap);
 	if (num_ml_sta < 2 || num_ml_sta > MAX_NUMBER_OF_CONC_CONNECTIONS ||
-	    num_p2p_sap > MAX_NUMBER_OF_CONC_CONNECTIONS) {
-		policy_mgr_err("vdev %d: invalid num_ml_sta %d disabled %d num_p2p_sap %d",
-			       vdev_id, num_ml_sta, num_disabled_ml_sta,
-			       num_p2p_sap);
+	    num_p2p_sap > MAX_NUMBER_OF_CONC_CONNECTIONS)
 		return;
-	}
 
 	num_affected_link = policy_mgr_get_affected_links_for_go_sap_cli(psoc,
 						num_ml_sta, ml_sta_vdev_lst,
@@ -5123,7 +5134,7 @@ policy_mgr_handle_ml_sta_links_on_vdev_up_csa(struct wlan_objmgr_psoc *psoc,
 	struct wlan_objmgr_vdev *vdev;
 
 	vdev = wlan_objmgr_get_vdev_by_id_from_psoc(psoc, vdev_id,
-							    WLAN_POLICY_MGR_ID);
+						    WLAN_POLICY_MGR_ID);
 	if (!vdev) {
 		policy_mgr_err("vdev %d: invalid vdev", vdev_id);
 		return;
@@ -5176,12 +5187,8 @@ void policy_mgr_re_enable_ml_sta_on_p2p_sap_down(struct wlan_objmgr_psoc *psoc,
 			 vdev_id, num_ml_sta, num_disabled_ml_sta, num_p2p_sap);
 
 	if (num_ml_sta < 2 || num_ml_sta > MAX_NUMBER_OF_CONC_CONNECTIONS ||
-	    num_p2p_sap > MAX_NUMBER_OF_CONC_CONNECTIONS) {
-		policy_mgr_err("vdev %d: invalid num_ml_sta %d disabled %d num_p2p_sap %d",
-			       vdev_id, num_ml_sta, num_disabled_ml_sta,
-			       num_p2p_sap);
+	    num_p2p_sap > MAX_NUMBER_OF_CONC_CONNECTIONS)
 		return;
-	}
 
 	/* If link can not be allowed to enable then skip checking further. */
 	if (!policy_mgr_sta_ml_link_enable_allowed(psoc, num_disabled_ml_sta,
@@ -5220,7 +5227,7 @@ void policy_mgr_handle_ml_sta_links_on_vdev_down(struct wlan_objmgr_psoc *psoc,
 	struct wlan_objmgr_vdev *vdev;
 
 	vdev = wlan_objmgr_get_vdev_by_id_from_psoc(psoc, vdev_id,
-							    WLAN_POLICY_MGR_ID);
+						    WLAN_POLICY_MGR_ID);
 	if (!vdev) {
 		policy_mgr_err("vdev %d: invalid vdev", vdev_id);
 		return;
@@ -6373,7 +6380,6 @@ void policy_mgr_dump_connection_status_info(struct wlan_objmgr_psoc *psoc)
 				 pm_conc_connection_list[i].ch_flagext);
 	}
 	qdf_mutex_release(&pm_ctx->qdf_conc_list_lock);
-	policy_mgr_dump_disabled_ml_links(pm_ctx);
 
 	policy_mgr_dump_freq_range(pm_ctx);
 	policy_mgr_validate_conn_info(psoc);