Преглед на файлове

qcacmn: Move GO to STA channel to achieve SCC

Enable movement of GO to STA channel to achieve SCC.
This movement is controlled by the ini variable
"gWlanMccToSccSwitchMode" just as its done for SAP.

Change-Id: I50f9487aa26dfc359211699f3d46e7869cedca4b
CRs-Fixed: 2062450
Ajit Pal Singh преди 7 години
родител
ревизия
c9f57df660

+ 32 - 10
umac/cmn_services/policy_mgr/src/wlan_policy_mgr_action.c

@@ -591,9 +591,11 @@ static bool policy_mgr_is_restart_sap_allowed(
 {
 	if ((mcc_to_scc_switch == QDF_MCC_TO_SCC_SWITCH_DISABLE) ||
 	    !(policy_mgr_concurrent_open_sessions_running(psoc) &&
+	      ((policy_mgr_get_concurrency_mode(psoc) ==
+	       (QDF_STA_MASK | QDF_SAP_MASK)) ||
 	      (policy_mgr_get_concurrency_mode(psoc) ==
-	       (QDF_STA_MASK | QDF_SAP_MASK)))) {
-		policy_mgr_err("MCC switch disabled or not concurrent STA/SAP");
+	       (QDF_STA_MASK | QDF_P2P_GO_MASK))))) {
+		policy_mgr_err("MCC switch disabled or not concurrent STA/SAP, STA/GO");
 		return false;
 	}
 	return true;
@@ -631,10 +633,20 @@ void policy_mgr_check_sta_ap_concurrent_ch_intf(void *data)
 	if (!policy_mgr_is_restart_sap_allowed(psoc, mcc_to_scc_switch))
 		return;
 
-	if (!policy_mgr_get_sap_conn_info(psoc,
-					  &operating_channel,
-					  &vdev_id)) {
-		policy_mgr_err("Could not retrieve SAP channel & vdev id");
+	if (policy_mgr_get_mode_specific_conn_info(psoc,
+						   &operating_channel,
+						   &vdev_id,
+						   PM_SAP_MODE)) {
+		policy_mgr_debug("SAP operating at channel:%d",
+				 operating_channel);
+	} else if (policy_mgr_get_mode_specific_conn_info(psoc,
+							  &operating_channel,
+							  &vdev_id,
+							  PM_P2P_GO_MODE)) {
+		policy_mgr_debug("GO operating at channel:%d",
+				 operating_channel);
+	} else {
+		policy_mgr_err("Could not retrieve SAP/GO operating channel&vdevid");
 		return;
 	}
 
@@ -680,10 +692,20 @@ void policy_mgr_check_concurrent_intf_and_restart_sap(
 		return;
 	}
 
-	if (!policy_mgr_get_sap_conn_info(psoc,
-					  &operating_channel,
-					  &vdev_id)) {
-		policy_mgr_err("Could not retrieve SAP channel & vdev id");
+	if (policy_mgr_get_mode_specific_conn_info(psoc,
+						   &operating_channel,
+						   &vdev_id,
+						   PM_SAP_MODE)) {
+		policy_mgr_debug("SAP operating at channel:%d",
+				 operating_channel);
+	} else if (policy_mgr_get_mode_specific_conn_info(psoc,
+							  &operating_channel,
+							  &vdev_id,
+							  PM_P2P_GO_MODE)) {
+		policy_mgr_debug("GO operating at channel:%d",
+				 operating_channel);
+	} else {
+		policy_mgr_err("Could not get SAP/GO operating channel&vdevid");
 		return;
 	}
 

+ 0 - 9
umac/cmn_services/policy_mgr/src/wlan_policy_mgr_get_set_utils.c

@@ -1443,15 +1443,6 @@ bool policy_mgr_get_mode_specific_conn_info(struct wlan_objmgr_psoc *psoc,
 	return status;
 }
 
-bool policy_mgr_get_sap_conn_info(struct wlan_objmgr_psoc *psoc,
-				  uint8_t *channel, uint8_t *vdev_id)
-{
-	return policy_mgr_get_mode_specific_conn_info(psoc,
-					  channel,
-					  vdev_id,
-					  PM_SAP_MODE);
-}
-
 bool policy_mgr_max_concurrent_connections_reached(
 		struct wlan_objmgr_psoc *psoc)
 {

+ 0 - 14
umac/cmn_services/policy_mgr/src/wlan_policy_mgr_i.h

@@ -385,20 +385,6 @@ enum policy_mgr_conc_next_action
 QDF_STATUS policy_mgr_reset_sap_mandatory_channels(
 		struct policy_mgr_psoc_priv_obj *pm_ctx);
 
-/**
- * policy_mgr_get_sap_conn_info() - Get active SAP channel and
- * vdev id
- * @psoc: PSOC object information
- * @channel: SAP channel
- * @vdev_id: SAP vdev id
- *
- * Get active SAP channel and vdev id
- *
- * Return: true for success, else false
- */
-bool policy_mgr_get_sap_conn_info(struct wlan_objmgr_psoc *psoc,
-				uint8_t *channel, uint8_t *vdev_id);
-
 /**
  * policy_mgr_get_mode_specific_conn_info() - Get active mode specific
  * channel and vdev id