Explorar o código

qcacmn: Add support for LL_LT_SAP_MODE in policy mgr

Currently PM_LL_LT_SAP_MODE is not handled in policy manager.
With this change add support for PM_LL_LT_SAP_MODE in the policy
manager.

Change-Id: I7b893b04498957eb4a7e9f74c4b4395d4a823bf9
CRs-Fixed: 3536612
Ashish Kumar Dhanotiya %!s(int64=2) %!d(string=hai) anos
pai
achega
a0bd216fc8

+ 2 - 11
os_if/linux/scan/src/wlan_cfg80211_scan.c

@@ -280,12 +280,7 @@ static void wlan_cfg80211_pno_callback(struct wlan_objmgr_vdev *vdev,
 #ifdef WLAN_POLICY_MGR_ENABLE
 static bool wlan_cfg80211_is_ap_go_present(struct wlan_objmgr_psoc *psoc)
 {
-	return policy_mgr_mode_specific_connection_count(psoc,
-							  PM_SAP_MODE,
-							  NULL) ||
-		policy_mgr_mode_specific_connection_count(psoc,
-							  PM_P2P_GO_MODE,
-							  NULL);
+	return policy_mgr_get_beaconing_mode_count(psoc, NULL);
 }
 
 static QDF_STATUS wlan_cfg80211_is_chan_ok_for_dnbs(
@@ -1622,11 +1617,7 @@ int wlan_cfg80211_scan(struct wlan_objmgr_vdev *vdev,
 
 	if (request->n_channels) {
 #ifdef WLAN_POLICY_MGR_ENABLE
-		bool ap_or_go_present =
-			policy_mgr_mode_specific_connection_count(
-			     psoc, PM_SAP_MODE, NULL) ||
-			     policy_mgr_mode_specific_connection_count(
-			     psoc, PM_P2P_GO_MODE, NULL);
+		bool ap_or_go_present = wlan_cfg80211_is_ap_go_present(psoc);
 #endif
 		for (i = 0; i < request->n_channels; i++) {
 			c_freq = request->channels[i]->center_freq;

+ 6 - 3
umac/dcs/core/src/wlan_dcs.c

@@ -758,6 +758,7 @@ static uint32_t wlan_dcs_get_pcl_for_sap(struct wlan_objmgr_vdev *vdev,
 	enum channel_state state;
 	QDF_STATUS status;
 	int i, j;
+	enum policy_mgr_con_mode mode;
 
 	psoc = wlan_vdev_get_psoc(vdev);
 	if (!psoc)
@@ -771,9 +772,11 @@ static uint32_t wlan_dcs_get_pcl_for_sap(struct wlan_objmgr_vdev *vdev,
 	if (!pcl)
 		return 0;
 
-	status = policy_mgr_get_pcl_for_vdev_id(psoc,
-						PM_SAP_MODE,
-						pcl->pcl_list, &pcl->pcl_len,
+	mode = policy_mgr_qdf_opmode_to_pm_con_mode(psoc, QDF_SAP_MODE,
+						    wlan_vdev_get_id(vdev));
+
+	status = policy_mgr_get_pcl_for_vdev_id(psoc, mode, pcl->pcl_list,
+						&pcl->pcl_len,
 						pcl->weight_list,
 						QDF_ARRAY_SIZE(pcl->weight_list),
 						wlan_vdev_get_id(vdev));

+ 9 - 12
umac/mlme/connection_mgr/core/src/wlan_cm_util.c

@@ -1752,8 +1752,6 @@ cm_get_pcl_chan_weigtage_for_sta(struct wlan_objmgr_pdev *pdev,
 				 struct pcl_freq_weight_list *pcl_lst,
 				 struct wlan_objmgr_vdev *vdev)
 {
-	enum QDF_OPMODE opmode = QDF_STA_MODE;
-	enum policy_mgr_con_mode pm_mode;
 	uint32_t num_entries = 0;
 	uint8_t vdev_id;
 	QDF_STATUS status;
@@ -1763,16 +1761,15 @@ cm_get_pcl_chan_weigtage_for_sta(struct wlan_objmgr_pdev *pdev,
 
 	vdev_id = wlan_vdev_get_id(vdev);
 
-	if (policy_mgr_map_concurrency_mode(&opmode, &pm_mode)) {
-		status = policy_mgr_get_pcl(wlan_pdev_get_psoc(pdev), pm_mode,
-					    pcl_lst->pcl_freq_list,
-					    &num_entries,
-					    pcl_lst->pcl_weight_list,
-					    NUM_CHANNELS, vdev_id);
-		if (QDF_IS_STATUS_ERROR(status))
-			return;
-		pcl_lst->num_of_pcl_channels = num_entries;
-	}
+	status = policy_mgr_get_pcl(wlan_pdev_get_psoc(pdev),
+				    PM_STA_MODE,
+				    pcl_lst->pcl_freq_list,
+				    &num_entries,
+				    pcl_lst->pcl_weight_list,
+				    NUM_CHANNELS, vdev_id);
+	if (QDF_IS_STATUS_ERROR(status))
+		return;
+	pcl_lst->num_of_pcl_channels = num_entries;
 }
 
 void cm_calculate_scores(struct cnx_mgr *cm_ctx,

+ 1 - 6
umac/scan/dispatcher/src/wlan_scan_api.c

@@ -178,12 +178,7 @@ void wlan_scan_update_pno_dwell_time(struct wlan_objmgr_vdev *vdev,
 	if (!psoc)
 		return;
 
-	sap_or_p2p_present = policy_mgr_mode_specific_connection_count
-			       (psoc,
-				PM_SAP_MODE, NULL) ||
-				policy_mgr_mode_specific_connection_count
-			       (psoc,
-				PM_P2P_GO_MODE, NULL) ||
+	sap_or_p2p_present = policy_mgr_get_beaconing_mode_count(psoc, NULL) ||
 				policy_mgr_mode_specific_connection_count
 			       (psoc,
 				PM_P2P_CLIENT_MODE, NULL);