From c9f57df660120da0daff8abf7f54bcc3b16c0e07 Mon Sep 17 00:00:00 2001 From: Ajit Pal Singh Date: Fri, 16 Jun 2017 11:36:12 +0530 Subject: [PATCH] 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 --- .../policy_mgr/src/wlan_policy_mgr_action.c | 42 ++++++++++++++----- .../src/wlan_policy_mgr_get_set_utils.c | 9 ---- .../policy_mgr/src/wlan_policy_mgr_i.h | 14 ------- 3 files changed, 32 insertions(+), 33 deletions(-) diff --git a/umac/cmn_services/policy_mgr/src/wlan_policy_mgr_action.c b/umac/cmn_services/policy_mgr/src/wlan_policy_mgr_action.c index 8990550e66b2..1d093b43823a 100644 --- a/umac/cmn_services/policy_mgr/src/wlan_policy_mgr_action.c +++ b/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; } diff --git a/umac/cmn_services/policy_mgr/src/wlan_policy_mgr_get_set_utils.c b/umac/cmn_services/policy_mgr/src/wlan_policy_mgr_get_set_utils.c index 2bdebb638c54..f614a1c4e0b4 100644 --- a/umac/cmn_services/policy_mgr/src/wlan_policy_mgr_get_set_utils.c +++ b/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) { diff --git a/umac/cmn_services/policy_mgr/src/wlan_policy_mgr_i.h b/umac/cmn_services/policy_mgr/src/wlan_policy_mgr_i.h index 5100017bda57..7d3f4e4a03e6 100644 --- a/umac/cmn_services/policy_mgr/src/wlan_policy_mgr_i.h +++ b/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