From c4e7ce7142c0d3c3a2f7ed5f6f2c072aa6b5477e Mon Sep 17 00:00:00 2001 From: Rachit Kankane Date: Fri, 15 Sep 2017 16:17:13 +0530 Subject: [PATCH] qcacmn: Correction in PCL index fetching routine In case of SBS or DBS, both the MACs are used for operations. We have issue in PCL index fatching routines for 3-port concurrent combinations when first two ports are configured in DBS mode. Change-Id: I36ca9979ef4222428e383d89b52ff1388c79ac22 CRs-Fixed: 2127091 --- src/wlan_policy_mgr_pcl.c | 208 ++++++++++++++++++-------------------- 1 file changed, 96 insertions(+), 112 deletions(-) diff --git a/src/wlan_policy_mgr_pcl.c b/src/wlan_policy_mgr_pcl.c index 01f2cc91c000..9a2092a0b8a6 100644 --- a/src/wlan_policy_mgr_pcl.c +++ b/src/wlan_policy_mgr_pcl.c @@ -747,26 +747,24 @@ static enum policy_mgr_two_connection_mode else index = PM_P2P_CLI_SAP_MCC_24_5_2x2; } - /* SBS */ + /* SBS or DBS */ } else if (pm_conc_connection_list[0].mac != - pm_conc_connection_list[1].mac) { - if ((WLAN_REG_IS_5GHZ_CH( - pm_conc_connection_list[0].chan)) && - (WLAN_REG_IS_5GHZ_CH( - pm_conc_connection_list[1].chan))) { + pm_conc_connection_list[1].mac) { + /* SBS */ + if ((WLAN_REG_IS_5GHZ_CH(pm_conc_connection_list[0].chan)) && + (WLAN_REG_IS_5GHZ_CH(pm_conc_connection_list[1].chan))) { if (POLICY_MGR_ONE_ONE == pm_conc_connection_list[0].chain_mask) index = PM_P2P_CLI_SAP_SBS_5_1x1; + } else { + /* DBS */ + if (POLICY_MGR_ONE_ONE == + pm_conc_connection_list[0].chain_mask) + index = PM_P2P_CLI_SAP_DBS_1x1; + else + index = PM_P2P_CLI_SAP_DBS_2x2; } - /* DBS */ - } else { - if (POLICY_MGR_ONE_ONE == - pm_conc_connection_list[0].chain_mask) - index = PM_P2P_CLI_SAP_DBS_1x1; - else - index = PM_P2P_CLI_SAP_DBS_2x2; } - return index; } @@ -819,26 +817,24 @@ static enum policy_mgr_two_connection_mode else index = PM_STA_SAP_MCC_24_5_2x2; } - /* SBS */ + /* SBS or DBS */ } else if (pm_conc_connection_list[0].mac != - pm_conc_connection_list[1].mac) { - if ((WLAN_REG_IS_5GHZ_CH( - pm_conc_connection_list[0].chan)) && - (WLAN_REG_IS_5GHZ_CH( - pm_conc_connection_list[1].chan))) { + pm_conc_connection_list[1].mac) { + /* SBS */ + if ((WLAN_REG_IS_5GHZ_CH(pm_conc_connection_list[0].chan)) && + (WLAN_REG_IS_5GHZ_CH(pm_conc_connection_list[1].chan))) { if (POLICY_MGR_ONE_ONE == pm_conc_connection_list[0].chain_mask) index = PM_STA_SAP_SBS_5_1x1; + } else { + /* DBS */ + if (POLICY_MGR_ONE_ONE == + pm_conc_connection_list[0].chain_mask) + index = PM_STA_SAP_DBS_1x1; + else + index = PM_STA_SAP_DBS_2x2; } - /* DBS */ - } else { - if (POLICY_MGR_ONE_ONE == - pm_conc_connection_list[0].chain_mask) - index = PM_STA_SAP_DBS_1x1; - else - index = PM_STA_SAP_DBS_2x2; } - return index; } @@ -891,26 +887,24 @@ static enum policy_mgr_two_connection_mode else index = PM_SAP_SAP_MCC_24_5_2x2; } - /* SBS */ + /* SBS or DBS */ } else if (pm_conc_connection_list[0].mac != - pm_conc_connection_list[1].mac) { - if ((WLAN_REG_IS_5GHZ_CH( - pm_conc_connection_list[0].chan)) && - (WLAN_REG_IS_5GHZ_CH( - pm_conc_connection_list[1].chan))) { + pm_conc_connection_list[1].mac) { + /* SBS */ + if ((WLAN_REG_IS_5GHZ_CH(pm_conc_connection_list[0].chan)) && + (WLAN_REG_IS_5GHZ_CH(pm_conc_connection_list[1].chan))) { if (POLICY_MGR_ONE_ONE == pm_conc_connection_list[0].chain_mask) index = PM_SAP_SAP_SBS_5_1x1; + } else { + /* DBS */ + if (POLICY_MGR_ONE_ONE == + pm_conc_connection_list[0].chain_mask) + index = PM_SAP_SAP_DBS_1x1; + else + index = PM_SAP_SAP_DBS_2x2; } - /* DBS */ - } else { - if (POLICY_MGR_ONE_ONE == - pm_conc_connection_list[0].chain_mask) - index = PM_SAP_SAP_DBS_1x1; - else - index = PM_SAP_SAP_DBS_2x2; } - return index; } @@ -963,26 +957,24 @@ static enum policy_mgr_two_connection_mode else index = PM_STA_P2P_GO_MCC_24_5_2x2; } - /* SBS */ + /* SBS or DBS */ } else if (pm_conc_connection_list[0].mac != - pm_conc_connection_list[1].mac) { - if ((WLAN_REG_IS_5GHZ_CH( - pm_conc_connection_list[0].chan)) && - (WLAN_REG_IS_5GHZ_CH( - pm_conc_connection_list[1].chan))) { + pm_conc_connection_list[1].mac) { + /* SBS */ + if ((WLAN_REG_IS_5GHZ_CH(pm_conc_connection_list[0].chan)) && + (WLAN_REG_IS_5GHZ_CH(pm_conc_connection_list[1].chan))) { if (POLICY_MGR_ONE_ONE == pm_conc_connection_list[0].chain_mask) index = PM_STA_P2P_GO_SBS_5_1x1; + } else { + /* DBS */ + if (POLICY_MGR_ONE_ONE == + pm_conc_connection_list[0].chain_mask) + index = PM_STA_P2P_GO_DBS_1x1; + else + index = PM_STA_P2P_GO_DBS_2x2; } - /* DBS */ - } else { - if (POLICY_MGR_ONE_ONE == - pm_conc_connection_list[0].chain_mask) - index = PM_STA_P2P_GO_DBS_1x1; - else - index = PM_STA_P2P_GO_DBS_2x2; } - return index; } @@ -1035,26 +1027,24 @@ static enum policy_mgr_two_connection_mode else index = PM_STA_P2P_CLI_MCC_24_5_2x2; } - /* SBS */ + /* SBS or DBS */ } else if (pm_conc_connection_list[0].mac != - pm_conc_connection_list[1].mac) { - if ((WLAN_REG_IS_5GHZ_CH( - pm_conc_connection_list[0].chan)) && - (WLAN_REG_IS_5GHZ_CH( - pm_conc_connection_list[1].chan))) { + pm_conc_connection_list[1].mac) { + /* SBS */ + if ((WLAN_REG_IS_5GHZ_CH(pm_conc_connection_list[0].chan)) && + (WLAN_REG_IS_5GHZ_CH(pm_conc_connection_list[1].chan))) { if (POLICY_MGR_ONE_ONE == pm_conc_connection_list[0].chain_mask) index = PM_STA_P2P_CLI_SBS_5_1x1; + } else { + /* DBS */ + if (POLICY_MGR_ONE_ONE == + pm_conc_connection_list[0].chain_mask) + index = PM_STA_P2P_CLI_DBS_1x1; + else + index = PM_STA_P2P_CLI_DBS_2x2; } - /* DBS */ - } else { - if (POLICY_MGR_ONE_ONE == - pm_conc_connection_list[0].chain_mask) - index = PM_STA_P2P_CLI_DBS_1x1; - else - index = PM_STA_P2P_CLI_DBS_2x2; } - return index; } @@ -1107,26 +1097,24 @@ static enum policy_mgr_two_connection_mode else index = PM_P2P_GO_P2P_CLI_MCC_24_5_2x2; } - /* SBS */ + /* SBS or DBS */ } else if (pm_conc_connection_list[0].mac != - pm_conc_connection_list[1].mac) { - if ((WLAN_REG_IS_5GHZ_CH( - pm_conc_connection_list[0].chan)) && - (WLAN_REG_IS_5GHZ_CH( - pm_conc_connection_list[1].chan))) { + pm_conc_connection_list[1].mac) { + /* SBS */ + if ((WLAN_REG_IS_5GHZ_CH(pm_conc_connection_list[0].chan)) && + (WLAN_REG_IS_5GHZ_CH(pm_conc_connection_list[1].chan))) { if (POLICY_MGR_ONE_ONE == pm_conc_connection_list[0].chain_mask) index = PM_P2P_GO_P2P_CLI_SBS_5_1x1; + } else { + /* DBS */ + if (POLICY_MGR_ONE_ONE == + pm_conc_connection_list[0].chain_mask) + index = PM_P2P_GO_P2P_CLI_DBS_1x1; + else + index = PM_P2P_GO_P2P_CLI_DBS_2x2; } - /* DBS */ - } else { - if (POLICY_MGR_ONE_ONE == - pm_conc_connection_list[0].chain_mask) - index = PM_P2P_GO_P2P_CLI_DBS_1x1; - else - index = PM_P2P_GO_P2P_CLI_DBS_2x2; } - return index; } @@ -1179,26 +1167,24 @@ static enum policy_mgr_two_connection_mode else index = PM_P2P_GO_SAP_MCC_24_5_2x2; } - /* SBS */ + /* SBS or DBS */ } else if (pm_conc_connection_list[0].mac != - pm_conc_connection_list[1].mac) { - if ((WLAN_REG_IS_5GHZ_CH( - pm_conc_connection_list[0].chan)) && - (WLAN_REG_IS_5GHZ_CH( - pm_conc_connection_list[1].chan))) { + pm_conc_connection_list[1].mac) { + /* SBS */ + if ((WLAN_REG_IS_5GHZ_CH(pm_conc_connection_list[0].chan)) && + (WLAN_REG_IS_5GHZ_CH(pm_conc_connection_list[1].chan))) { if (POLICY_MGR_ONE_ONE == pm_conc_connection_list[0].chain_mask) index = PM_P2P_GO_SAP_SBS_5_1x1; + } else { + /* DBS */ + if (POLICY_MGR_ONE_ONE == + pm_conc_connection_list[0].chain_mask) + index = PM_P2P_GO_SAP_DBS_1x1; + else + index = PM_P2P_GO_SAP_DBS_2x2; } - /* DBS */ - } else { - if (POLICY_MGR_ONE_ONE == - pm_conc_connection_list[0].chain_mask) - index = PM_P2P_GO_SAP_DBS_1x1; - else - index = PM_P2P_GO_SAP_DBS_2x2; } - return index; } @@ -1251,26 +1237,24 @@ static enum policy_mgr_two_connection_mode else index = PM_STA_STA_MCC_24_5_2x2; } - /* SBS */ + /* SBS or DBS */ } else if (pm_conc_connection_list[0].mac != - pm_conc_connection_list[1].mac) { - if ((WLAN_REG_IS_5GHZ_CH( - pm_conc_connection_list[0].chan)) && - (WLAN_REG_IS_5GHZ_CH( - pm_conc_connection_list[1].chan))) { + pm_conc_connection_list[1].mac) { + /* SBS */ + if ((WLAN_REG_IS_5GHZ_CH(pm_conc_connection_list[0].chan)) && + (WLAN_REG_IS_5GHZ_CH(pm_conc_connection_list[1].chan))) { if (POLICY_MGR_ONE_ONE == pm_conc_connection_list[0].chain_mask) index = PM_STA_STA_SBS_5_1x1; + } else { + /* DBS */ + if (POLICY_MGR_ONE_ONE == + pm_conc_connection_list[0].chain_mask) + index = PM_STA_STA_DBS_1x1; + else + index = PM_STA_STA_DBS_2x2; } - /* DBS */ - } else { - if (POLICY_MGR_ONE_ONE == - pm_conc_connection_list[0].chain_mask) - index = PM_STA_STA_DBS_1x1; - else - index = PM_STA_STA_DBS_2x2; } - return index; }