mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-08 12:58:12 -04:00
qcacld-3.0: Add support for 3rd mode when CLI+CLI exists
Currently support is not there for 3rd mode when CLI+CLI connection is there on DUT. Update PCL table for 3rd mode when CLI+CLI exsits and add support to fetch index based on new connection band and concurrency. Change-Id: I6041c40b3208d0b33dff2b4f9dc854d2d2dc17a1 CRs-Fixed: 3050537
This commit is contained in:
parent
fe0fe96464
commit
76fdddbcb7
3 changed files with 413 additions and 57 deletions
|
|
@ -523,6 +523,21 @@ enum policy_mgr_one_connection_mode {
|
|||
* 2x2
|
||||
* @PM_P2P_GO_SAP_SBS_5_1x1: P2P GO & SAP connection on 5G SBS
|
||||
* using 1x1
|
||||
* @PM_P2P_GO_P2P_GO_SCC_24_1x1: P2P GO & P2P GO SCC on 2.4G using 1x1
|
||||
* @PM_P2P_GO_P2P_GO_SCC_24_2x2: P2P GO & P2P GO SCC on 2.4G using 2x2
|
||||
* @PM_P2P_GO_P2P_GO_MCC_24_1x1: P2P GO & P2P GO MCC on 2.4G using 1x1
|
||||
* @PM_P2P_GO_P2P_GO_MCC_24_2x2: P2P GO & P2P GO MCC on 2.4G using 2x2
|
||||
* @PM_P2P_GO_P2P_GO_SCC_5_1x1: P2P GO & P2P GO SCC on 5G using 1x1
|
||||
* @PM_P2P_GO_P2P_GO_SCC_5_2x2: P2P GO & P2P GO SCC on 5G using 2x2
|
||||
* @PM_P2P_GO_P2P_GO_MCC_5_1x1: P2P GO & P2P GO MCC on 5G using 1x1
|
||||
* @PM_P2P_GO_P2P_GO_MCC_5_2x2: P2P GO & P2P GO MCC on 5G using 2x2
|
||||
* @PM_P2P_GO_P2P_GO_MCC_24_5_1x1: P2P GO 2.4G & P2P GO 5G dual band MCC
|
||||
* using 1x1
|
||||
* @PM_P2P_GO_P2P_GO_MCC_24_5_2x2: P2P GO 2.4G & P2P GO 5G dual band MCC
|
||||
* using 2x2
|
||||
* @PM_P2P_GO_P2P_GO_DBS_1x1: P2P GO & P2P GO on DBS using 1x1
|
||||
* @PM_P2P_GO_P2P_GO_DBS_2x2: P2P GO & P2P GO on DBS using 2x2
|
||||
* @PM_P2P_GO_P2P_GO_SBS_5_1x1: P2P GO & P2P GO on SBS using 1x1
|
||||
* @PM_P2P_CLI_SAP_SCC_24_1x1: CLI & SAP connection on SCC using
|
||||
* 1x1@2.4 Ghz
|
||||
* @PM_P2P_CLI_SAP_SCC_24_2x2: CLI & SAP connection on SCC using
|
||||
|
|
@ -548,6 +563,21 @@ enum policy_mgr_one_connection_mode {
|
|||
* 2x2
|
||||
* @PM_P2P_CLI_SAP_SBS_5_1x1: P2P CLI & SAP connection on 5G SBS
|
||||
* using 1x1
|
||||
* @PM_P2P_CLI_P2P_CLI_SCC_24_1x1: P2P CLI & P2P CLI SCC on 2.4G using 1x1
|
||||
* @PM_P2P_CLI_P2P_CLI_SCC_24_2x2: P2P CLI & P2P CLI SCC on 2.4G using 2x2
|
||||
* @PM_P2P_CLI_P2P_CLI_MCC_24_1x1: P2P CLI & P2P CLI MCC on 2.4G using 1x1
|
||||
* @PM_P2P_CLI_P2P_CLI_MCC_24_2x2: P2P CLI & P2P CLI MCC on 2.4G using 2x2
|
||||
* @PM_P2P_CLI_P2P_CLI_SCC_5_1x1: P2P CLI & P2P CLI SCC on 5G using 1x1
|
||||
* @PM_P2P_CLI_P2P_CLI_SCC_5_2x2: P2P CLI & P2P CLI SCC on 5G using 2x2
|
||||
* @PM_P2P_CLI_P2P_CLI_MCC_5_1x1: P2P CLI & P2P CLI MCC on 5G using 1x1
|
||||
* @PM_P2P_CLI_P2P_CLI_MCC_5_2x2: P2P CLI & P2P CLI MCC on 5G using 2x2
|
||||
* @PM_P2P_CLI_P2P_CLI_MCC_24_5_1x1: P2P CLI 2.4G & P2P CLI 5G dual band MCC
|
||||
* using 1x1
|
||||
* @PM_P2P_CLI_P2P_CLI_MCC_24_5_2x2: P2P CLI 2.4G & P2P CLI 5G dual band MCC
|
||||
* using 2x2
|
||||
* @PM_P2P_CLI_P2P_CLI_DBS_1x1: P2P CLI & P2P CLI on DBS using 1x1
|
||||
* @PM_P2P_CLI_P2P_CLI_DBS_2x2: P2P CLI & P2P CLI on DBS using 2x2
|
||||
* @PM_P2P_CLI_P2P_CLI_SBS_5_1x1: P2P CLI & P2P CLI on SBS using 1x1
|
||||
* @PM_SAP_SAP_SCC_24_1x1: SAP & SAP connection on
|
||||
* SCC using 1x1@2.4 Ghz
|
||||
* @PM_SAP_SAP_SCC_24_2x2: SAP & SAP connection on
|
||||
|
|
@ -618,21 +648,6 @@ enum policy_mgr_one_connection_mode {
|
|||
* @PM_NAN_DISC_NDI_MCC_24_2x2: NAN & NDI connection on MCC using 2x2 on 2.4 GHz
|
||||
* @PM_NAN_DISC_NDI_DBS_1x1: NAN & NDI connection on DBS using 1x1
|
||||
* @PM_NAN_DISC_NDI_DBS_2x2: NAN & NDI connection on DBS using 2x2
|
||||
* @PM_P2P_GO_P2P_GO_SCC_24_1x1: P2P GO & P2P GO SCC on 2.4G using 1x1
|
||||
* @PM_P2P_GO_P2P_GO_SCC_24_2x2: P2P GO & P2P GO SCC on 2.4G using 2x2
|
||||
* @PM_P2P_GO_P2P_GO_MCC_24_1x1: P2P GO & P2P GO MCC on 2.4G using 1x1
|
||||
* @PM_P2P_GO_P2P_GO_MCC_24_2x2: P2P GO & P2P GO MCC on 2.4G using 2x2
|
||||
* @PM_P2P_GO_P2P_GO_SCC_5_1x1: P2P GO & P2P GO SCC on 5G using 1x1
|
||||
* @PM_P2P_GO_P2P_GO_SCC_5_2x2: P2P GO & P2P GO SCC on 5G using 2x2
|
||||
* @PM_P2P_GO_P2P_GO_MCC_5_1x1: P2P GO & P2P GO MCC on 5G using 1x1
|
||||
* @PM_P2P_GO_P2P_GO_MCC_5_2x2: P2P GO & P2P GO MCC on 5G using 2x2
|
||||
* @PM_P2P_GO_P2P_GO_MCC_24_5_1x1: P2P GO 2.4G & P2P GO 5G dual band MCC
|
||||
* using 1x1
|
||||
* @PM_P2P_GO_P2P_GO_MCC_24_5_2x2: P2P GO 2.4G & P2P GO 5G dual band MCC
|
||||
* using 2x2
|
||||
* @PM_P2P_GO_P2P_GO_DBS_1x1: P2P GO & P2P GO on DBS using 1x1
|
||||
* @PM_P2P_GO_P2P_GO_DBS_2x2: P2P GO & P2P GO on DBS using 2x2
|
||||
* @PM_P2P_GO_P2P_GO_SBS_5_1x1: P2P GO & P2P GO on SBS using 1x1
|
||||
*
|
||||
* These are generic IDs that identify the various roles in the
|
||||
* software system
|
||||
|
|
@ -703,6 +718,21 @@ enum policy_mgr_two_connection_mode {
|
|||
PM_P2P_GO_SAP_DBS_1x1,
|
||||
PM_P2P_GO_SAP_DBS_2x2,
|
||||
PM_P2P_GO_SAP_SBS_5_1x1,
|
||||
PM_P2P_GO_SAP_SBS_5_2x2 = PM_P2P_GO_SAP_SBS_5_1x1,
|
||||
PM_P2P_GO_P2P_GO_SCC_24_1x1,
|
||||
PM_P2P_GO_P2P_GO_SCC_24_2x2,
|
||||
PM_P2P_GO_P2P_GO_MCC_24_1x1,
|
||||
PM_P2P_GO_P2P_GO_MCC_24_2x2,
|
||||
PM_P2P_GO_P2P_GO_SCC_5_1x1,
|
||||
PM_P2P_GO_P2P_GO_SCC_5_2x2,
|
||||
PM_P2P_GO_P2P_GO_MCC_5_1x1,
|
||||
PM_P2P_GO_P2P_GO_MCC_5_2x2,
|
||||
PM_P2P_GO_P2P_GO_MCC_24_5_1x1,
|
||||
PM_P2P_GO_P2P_GO_MCC_24_5_2x2,
|
||||
PM_P2P_GO_P2P_GO_DBS_1x1,
|
||||
PM_P2P_GO_P2P_GO_DBS_2x2,
|
||||
PM_P2P_GO_P2P_GO_SBS_5_1x1,
|
||||
PM_P2P_GO_P2P_GO_SBS_5_2x2 = PM_P2P_GO_P2P_GO_SBS_5_1x1,
|
||||
PM_P2P_CLI_SAP_SCC_24_1x1,
|
||||
PM_P2P_CLI_SAP_SCC_24_2x2,
|
||||
PM_P2P_CLI_SAP_MCC_24_1x1,
|
||||
|
|
@ -716,6 +746,21 @@ enum policy_mgr_two_connection_mode {
|
|||
PM_P2P_CLI_SAP_DBS_1x1,
|
||||
PM_P2P_CLI_SAP_DBS_2x2,
|
||||
PM_P2P_CLI_SAP_SBS_5_1x1,
|
||||
PM_P2P_CLI_SAP_SBS_5_2x2 = PM_P2P_CLI_SAP_SBS_5_1x1,
|
||||
PM_P2P_CLI_P2P_CLI_SCC_24_1x1,
|
||||
PM_P2P_CLI_P2P_CLI_SCC_24_2x2,
|
||||
PM_P2P_CLI_P2P_CLI_MCC_24_1x1,
|
||||
PM_P2P_CLI_P2P_CLI_MCC_24_2x2,
|
||||
PM_P2P_CLI_P2P_CLI_SCC_5_1x1,
|
||||
PM_P2P_CLI_P2P_CLI_SCC_5_2x2,
|
||||
PM_P2P_CLI_P2P_CLI_MCC_5_1x1,
|
||||
PM_P2P_CLI_P2P_CLI_MCC_5_2x2,
|
||||
PM_P2P_CLI_P2P_CLI_MCC_24_5_1x1,
|
||||
PM_P2P_CLI_P2P_CLI_MCC_24_5_2x2,
|
||||
PM_P2P_CLI_P2P_CLI_DBS_1x1,
|
||||
PM_P2P_CLI_P2P_CLI_DBS_2x2,
|
||||
PM_P2P_CLI_P2P_CLI_SBS_5_1x1,
|
||||
PM_P2P_CLI_P2P_CLI_SBS_5_2x2 = PM_P2P_CLI_P2P_CLI_SBS_5_1x1,
|
||||
PM_SAP_SAP_SCC_24_1x1,
|
||||
PM_SAP_SAP_SCC_24_2x2,
|
||||
PM_SAP_SAP_MCC_24_1x1,
|
||||
|
|
@ -760,19 +805,6 @@ enum policy_mgr_two_connection_mode {
|
|||
PM_NAN_DISC_NDI_MCC_24_2x2,
|
||||
PM_NAN_DISC_NDI_DBS_1x1,
|
||||
PM_NAN_DISC_NDI_DBS_2x2,
|
||||
PM_P2P_GO_P2P_GO_SCC_24_1x1,
|
||||
PM_P2P_GO_P2P_GO_SCC_24_2x2,
|
||||
PM_P2P_GO_P2P_GO_MCC_24_1x1,
|
||||
PM_P2P_GO_P2P_GO_MCC_24_2x2,
|
||||
PM_P2P_GO_P2P_GO_SCC_5_1x1,
|
||||
PM_P2P_GO_P2P_GO_SCC_5_2x2,
|
||||
PM_P2P_GO_P2P_GO_MCC_5_1x1,
|
||||
PM_P2P_GO_P2P_GO_MCC_5_2x2,
|
||||
PM_P2P_GO_P2P_GO_MCC_24_5_1x1,
|
||||
PM_P2P_GO_P2P_GO_MCC_24_5_2x2,
|
||||
PM_P2P_GO_P2P_GO_DBS_1x1,
|
||||
PM_P2P_GO_P2P_GO_DBS_2x2,
|
||||
PM_P2P_GO_P2P_GO_SBS_5_1x1,
|
||||
PM_MAX_TWO_CONNECTION_MODE
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1729,58 +1729,128 @@ static enum policy_mgr_two_connection_mode
|
|||
return index;
|
||||
}
|
||||
|
||||
/*
|
||||
* policy_mgr_check_and_get_third_connection_pcl_table_index_for_scc() -
|
||||
* This function checks connection mode is in scc or not and returns
|
||||
* index value based on mode and prvided index inputs.
|
||||
*
|
||||
* @scc_2g_1x1: index of scc_2g_1x1 for provided concurrency
|
||||
* @scc_2g_2x2: index of scc_2g_2x2 for provided concurrency
|
||||
* @scc_5g_1x1: index of scc_5g_1x1 for provided concurrency
|
||||
* @scc_5g_2x2: index of scc_5g_2x2 for provided concurrency
|
||||
*
|
||||
* Return: policy_mgr_two_connection_mode index
|
||||
*/
|
||||
static enum policy_mgr_two_connection_mode
|
||||
policy_mgr_get_third_connection_pcl_table_index_go_go(void)
|
||||
policy_mgr_check_and_get_third_connection_pcl_table_index_for_scc(
|
||||
enum policy_mgr_two_connection_mode scc_2g_1x1,
|
||||
enum policy_mgr_two_connection_mode scc_2g_2x2,
|
||||
enum policy_mgr_two_connection_mode scc_5g_1x1,
|
||||
enum policy_mgr_two_connection_mode scc_5g_2x2)
|
||||
{
|
||||
enum policy_mgr_two_connection_mode index = PM_MAX_TWO_CONNECTION_MODE;
|
||||
/* SCC */
|
||||
|
||||
if (pm_conc_connection_list[0].freq ==
|
||||
pm_conc_connection_list[1].freq) {
|
||||
pm_conc_connection_list[1].freq) {
|
||||
if (WLAN_REG_IS_24GHZ_CH_FREQ(
|
||||
pm_conc_connection_list[0].freq)) {
|
||||
pm_conc_connection_list[0].freq)) {
|
||||
if (POLICY_MGR_ONE_ONE ==
|
||||
pm_conc_connection_list[0].chain_mask)
|
||||
index = PM_P2P_GO_P2P_GO_SCC_24_1x1;
|
||||
pm_conc_connection_list[0].chain_mask)
|
||||
index = scc_2g_1x1;
|
||||
else
|
||||
index = PM_P2P_GO_P2P_GO_SCC_24_2x2;
|
||||
index = scc_2g_2x2;
|
||||
} else {
|
||||
if (POLICY_MGR_ONE_ONE ==
|
||||
pm_conc_connection_list[0].chain_mask)
|
||||
index = PM_P2P_GO_P2P_GO_SCC_5_1x1;
|
||||
index = scc_5g_1x1;
|
||||
else
|
||||
index = PM_P2P_GO_P2P_GO_SCC_5_2x2;
|
||||
index = scc_5g_2x2;
|
||||
}
|
||||
/* MCC */
|
||||
} else if (pm_conc_connection_list[0].mac ==
|
||||
pm_conc_connection_list[1].mac) {
|
||||
}
|
||||
return index;
|
||||
}
|
||||
|
||||
/*
|
||||
* policy_mgr_check_and_get_third_connection_pcl_table_index_for_mcc() -
|
||||
* This function checks connection mode is in mcc or not and returns
|
||||
* index value based on mode and prvided index inputs.
|
||||
*
|
||||
* @mcc_2g_1x1: index of mcc_2g_1x1 for provided concurrency
|
||||
* @mcc_2g_2x2: index of mcc_2g_2x2 for provided concurrency
|
||||
* @mcc_5g_1x1: index of mcc_5g_1x1 for provided concurrency
|
||||
* @mcc_5g_2x2: index of mcc_5g_2x2 for provided concurrency
|
||||
* @mcc_24_5_1x1: index of mcc_24_5_1x1 for provided concurrency
|
||||
* @mcc_24_5_2x2: index of mcc_24_5_2x2 for provided concurrency
|
||||
*
|
||||
* Return: policy_mgr_two_connection_mode index
|
||||
*/
|
||||
static enum policy_mgr_two_connection_mode
|
||||
policy_mgr_check_and_get_third_connection_pcl_table_index_for_mcc(
|
||||
enum policy_mgr_two_connection_mode mcc_2g_1x1,
|
||||
enum policy_mgr_two_connection_mode mcc_2g_2x2,
|
||||
enum policy_mgr_two_connection_mode mcc_5g_1x1,
|
||||
enum policy_mgr_two_connection_mode mcc_5g_2x2,
|
||||
enum policy_mgr_two_connection_mode mcc_24_5_1x1,
|
||||
enum policy_mgr_two_connection_mode mcc_24_5_2x2)
|
||||
{
|
||||
enum policy_mgr_two_connection_mode index = PM_MAX_TWO_CONNECTION_MODE;
|
||||
|
||||
if (pm_conc_connection_list[0].mac == pm_conc_connection_list[1].mac) {
|
||||
if ((WLAN_REG_IS_24GHZ_CH_FREQ(
|
||||
pm_conc_connection_list[0].freq)) &&
|
||||
(WLAN_REG_IS_24GHZ_CH_FREQ(
|
||||
pm_conc_connection_list[1].freq))) {
|
||||
pm_conc_connection_list[0].freq)) &&
|
||||
(WLAN_REG_IS_24GHZ_CH_FREQ(
|
||||
pm_conc_connection_list[1].freq))) {
|
||||
if (POLICY_MGR_ONE_ONE ==
|
||||
pm_conc_connection_list[0].chain_mask)
|
||||
index = PM_P2P_GO_P2P_GO_MCC_24_1x1;
|
||||
pm_conc_connection_list[0].chain_mask)
|
||||
index = mcc_2g_1x1;
|
||||
else
|
||||
index = PM_P2P_GO_P2P_GO_MCC_24_2x2;
|
||||
index = mcc_2g_2x2;
|
||||
} else if ((WLAN_REG_IS_5GHZ_CH_FREQ(
|
||||
pm_conc_connection_list[0].freq)) &&
|
||||
(WLAN_REG_IS_5GHZ_CH_FREQ(
|
||||
pm_conc_connection_list[1].freq))) {
|
||||
} else if (!(WLAN_REG_IS_24GHZ_CH_FREQ(
|
||||
pm_conc_connection_list[0].freq)) &&
|
||||
!(WLAN_REG_IS_24GHZ_CH_FREQ(
|
||||
pm_conc_connection_list[1].freq))) {
|
||||
if (POLICY_MGR_ONE_ONE ==
|
||||
pm_conc_connection_list[0].chain_mask)
|
||||
index = PM_P2P_GO_P2P_GO_MCC_5_1x1;
|
||||
pm_conc_connection_list[0].chain_mask)
|
||||
index = mcc_5g_1x1;
|
||||
else
|
||||
index = PM_P2P_GO_P2P_GO_MCC_5_2x2;
|
||||
index = mcc_5g_2x2;
|
||||
} else {
|
||||
if (POLICY_MGR_ONE_ONE ==
|
||||
pm_conc_connection_list[0].chain_mask)
|
||||
index = PM_P2P_GO_P2P_GO_MCC_24_5_1x1;
|
||||
index = mcc_24_5_1x1;
|
||||
else
|
||||
index = PM_P2P_GO_P2P_GO_MCC_24_5_2x2;
|
||||
index = mcc_24_5_2x2;
|
||||
}
|
||||
/* SBS or DBS */
|
||||
} else if (pm_conc_connection_list[0].mac !=
|
||||
pm_conc_connection_list[1].mac) {
|
||||
}
|
||||
return index;
|
||||
}
|
||||
|
||||
/*
|
||||
* policy_mgr_check_and_get_third_connection_pcl_table_index_for_dbs() -
|
||||
* This function checks connection mode is in dbs or sbs and returns index
|
||||
* value based on mode and prvided index inputs.
|
||||
*
|
||||
* @sbs_5g_1x1: index of sbs_5g_1x1 for provided concurrency
|
||||
* @sbs_5g_2x2: index of sbs_5g_2x2 for provided concurrency
|
||||
* @dbs_1x1: index of dbs_1x1 for provided concurrency
|
||||
* @dbs_2x2: index of dbs_2x2 for provided concurrency
|
||||
*
|
||||
* Return: policy_mgr_two_connection_mode index
|
||||
*/
|
||||
static enum policy_mgr_two_connection_mode
|
||||
policy_mgr_check_and_get_third_connection_pcl_table_index_for_dbs(
|
||||
enum policy_mgr_two_connection_mode sbs_5g_1x1,
|
||||
enum policy_mgr_two_connection_mode sbs_5g_2x2,
|
||||
enum policy_mgr_two_connection_mode dbs_1x1,
|
||||
enum policy_mgr_two_connection_mode dbs_2x2)
|
||||
{
|
||||
enum policy_mgr_two_connection_mode index = PM_MAX_TWO_CONNECTION_MODE;
|
||||
|
||||
if (pm_conc_connection_list[0].mac != pm_conc_connection_list[1].mac) {
|
||||
/* SBS */
|
||||
if ((WLAN_REG_IS_5GHZ_CH_FREQ(
|
||||
pm_conc_connection_list[0].freq)) &&
|
||||
|
|
@ -1788,16 +1858,89 @@ static enum policy_mgr_two_connection_mode
|
|||
pm_conc_connection_list[1].freq))) {
|
||||
if (POLICY_MGR_ONE_ONE ==
|
||||
pm_conc_connection_list[0].chain_mask)
|
||||
index = PM_P2P_GO_P2P_GO_SBS_5_1x1;
|
||||
index = sbs_5g_1x1;
|
||||
else
|
||||
index = sbs_5g_2x2;
|
||||
} else {
|
||||
/* DBS */
|
||||
if (POLICY_MGR_ONE_ONE ==
|
||||
pm_conc_connection_list[0].chain_mask)
|
||||
index = PM_P2P_GO_P2P_GO_DBS_1x1;
|
||||
index = dbs_1x1;
|
||||
else
|
||||
index = PM_P2P_GO_P2P_GO_DBS_2x2;
|
||||
index = dbs_2x2;
|
||||
}
|
||||
}
|
||||
|
||||
return index;
|
||||
}
|
||||
|
||||
static enum policy_mgr_two_connection_mode
|
||||
policy_mgr_get_third_connection_pcl_table_index_cli_cli(void)
|
||||
{
|
||||
enum policy_mgr_two_connection_mode index;
|
||||
|
||||
index =
|
||||
policy_mgr_check_and_get_third_connection_pcl_table_index_for_scc(
|
||||
PM_P2P_CLI_P2P_CLI_SCC_24_1x1,
|
||||
PM_P2P_CLI_P2P_CLI_SCC_24_2x2,
|
||||
PM_P2P_CLI_P2P_CLI_SCC_5_1x1,
|
||||
PM_P2P_CLI_P2P_CLI_SCC_5_2x2);
|
||||
if (index != PM_MAX_TWO_CONNECTION_MODE)
|
||||
return index;
|
||||
|
||||
index =
|
||||
policy_mgr_check_and_get_third_connection_pcl_table_index_for_mcc(
|
||||
PM_P2P_CLI_P2P_CLI_MCC_24_1x1,
|
||||
PM_P2P_CLI_P2P_CLI_MCC_24_2x2,
|
||||
PM_P2P_CLI_P2P_CLI_MCC_5_1x1,
|
||||
PM_P2P_CLI_P2P_CLI_MCC_5_2x2,
|
||||
PM_P2P_CLI_P2P_CLI_MCC_24_5_1x1,
|
||||
PM_P2P_CLI_P2P_CLI_MCC_24_5_2x2);
|
||||
|
||||
if (index != PM_MAX_TWO_CONNECTION_MODE)
|
||||
return index;
|
||||
|
||||
index =
|
||||
policy_mgr_check_and_get_third_connection_pcl_table_index_for_dbs(
|
||||
PM_P2P_CLI_P2P_CLI_SBS_5_1x1,
|
||||
PM_P2P_CLI_P2P_CLI_SBS_5_2x2,
|
||||
PM_P2P_CLI_P2P_CLI_DBS_1x1,
|
||||
PM_P2P_CLI_P2P_CLI_DBS_2x2);
|
||||
|
||||
return index;
|
||||
}
|
||||
|
||||
static enum policy_mgr_two_connection_mode
|
||||
policy_mgr_get_third_connection_pcl_table_index_go_go(void)
|
||||
{
|
||||
enum policy_mgr_two_connection_mode index;
|
||||
|
||||
index =
|
||||
policy_mgr_check_and_get_third_connection_pcl_table_index_for_scc(
|
||||
PM_P2P_GO_P2P_GO_SCC_24_1x1,
|
||||
PM_P2P_GO_P2P_GO_SCC_24_2x2,
|
||||
PM_P2P_GO_P2P_GO_SCC_5_1x1,
|
||||
PM_P2P_GO_P2P_GO_SCC_5_2x2);
|
||||
if (index != PM_MAX_TWO_CONNECTION_MODE)
|
||||
return index;
|
||||
|
||||
index =
|
||||
policy_mgr_check_and_get_third_connection_pcl_table_index_for_mcc(
|
||||
PM_P2P_GO_P2P_GO_MCC_24_1x1,
|
||||
PM_P2P_GO_P2P_GO_MCC_24_2x2,
|
||||
PM_P2P_GO_P2P_GO_MCC_5_1x1,
|
||||
PM_P2P_GO_P2P_GO_MCC_5_2x2,
|
||||
PM_P2P_GO_P2P_GO_MCC_24_5_1x1,
|
||||
PM_P2P_GO_P2P_GO_MCC_24_5_2x2);
|
||||
if (index != PM_MAX_TWO_CONNECTION_MODE)
|
||||
return index;
|
||||
|
||||
index =
|
||||
policy_mgr_check_and_get_third_connection_pcl_table_index_for_dbs(
|
||||
PM_P2P_GO_P2P_GO_SBS_5_1x1,
|
||||
PM_P2P_GO_P2P_GO_SBS_5_2x2,
|
||||
PM_P2P_GO_P2P_GO_DBS_1x1,
|
||||
PM_P2P_GO_P2P_GO_DBS_2x2);
|
||||
return index;
|
||||
}
|
||||
|
||||
|
|
@ -1977,6 +2120,11 @@ enum policy_mgr_two_connection_mode
|
|||
index =
|
||||
policy_mgr_get_third_connection_pcl_table_index_go_go();
|
||||
|
||||
else if ((pm_conc_connection_list[0].mode == PM_P2P_CLIENT_MODE) &&
|
||||
(pm_conc_connection_list[1].mode == PM_P2P_CLIENT_MODE))
|
||||
index =
|
||||
policy_mgr_get_third_connection_pcl_table_index_cli_cli();
|
||||
|
||||
policy_mgr_debug("mode0:%d mode1:%d freq0:%d freq1:%d chain:%d index:%d",
|
||||
pm_conc_connection_list[0].mode,
|
||||
pm_conc_connection_list[1].mode,
|
||||
|
|
|
|||
|
|
@ -1147,6 +1147,182 @@ pm_third_connection_pcl_dbs_2x2_table = {
|
|||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_NDI_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE} },
|
||||
|
||||
[PM_P2P_CLI_P2P_CLI_SCC_24_1x1] = {
|
||||
[PM_STA_MODE] = {PM_5G, PM_5G, PM_5G},
|
||||
[PM_SAP_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE,
|
||||
PM_MAX_PCL_TYPE},
|
||||
[PM_P2P_CLIENT_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_P2P_GO_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE,
|
||||
PM_MAX_PCL_TYPE},
|
||||
[PM_NAN_DISC_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_NDI_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE,
|
||||
PM_MAX_PCL_TYPE} },
|
||||
|
||||
[PM_P2P_CLI_P2P_CLI_SCC_24_2x2] = {
|
||||
[PM_STA_MODE] = {PM_5G, PM_5G, PM_5G},
|
||||
[PM_SAP_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE,
|
||||
PM_MAX_PCL_TYPE},
|
||||
[PM_P2P_CLIENT_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_P2P_GO_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE,
|
||||
PM_MAX_PCL_TYPE},
|
||||
[PM_NAN_DISC_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_NDI_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE,
|
||||
PM_MAX_PCL_TYPE} },
|
||||
|
||||
[PM_P2P_CLI_P2P_CLI_MCC_24_1x1] = {
|
||||
[PM_STA_MODE] = {PM_5G, PM_5G, PM_5G},
|
||||
[PM_SAP_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE,
|
||||
PM_MAX_PCL_TYPE},
|
||||
[PM_P2P_CLIENT_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_P2P_GO_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_NAN_DISC_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_NDI_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE,
|
||||
PM_MAX_PCL_TYPE} },
|
||||
|
||||
[PM_P2P_CLI_P2P_CLI_MCC_24_2x2] = {
|
||||
[PM_STA_MODE] = {PM_5G, PM_5G, PM_5G},
|
||||
[PM_SAP_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE,
|
||||
PM_MAX_PCL_TYPE},
|
||||
[PM_P2P_CLIENT_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_P2P_GO_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_NAN_DISC_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_NDI_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE,
|
||||
PM_MAX_PCL_TYPE} },
|
||||
|
||||
[PM_P2P_CLI_P2P_CLI_SCC_5_1x1] = {
|
||||
[PM_STA_MODE] = {PM_24G, PM_24G, PM_24G},
|
||||
[PM_SAP_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE,
|
||||
PM_MAX_PCL_TYPE},
|
||||
[PM_P2P_CLIENT_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_P2P_GO_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_NAN_DISC_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_NDI_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE,
|
||||
PM_MAX_PCL_TYPE} },
|
||||
|
||||
[PM_P2P_CLI_P2P_CLI_SCC_5_2x2] = {
|
||||
[PM_STA_MODE] = {PM_24G, PM_24G, PM_24G},
|
||||
[PM_SAP_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE,
|
||||
PM_MAX_PCL_TYPE},
|
||||
[PM_P2P_CLIENT_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_P2P_GO_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_NAN_DISC_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_NDI_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE,
|
||||
PM_MAX_PCL_TYPE} },
|
||||
|
||||
[PM_P2P_CLI_P2P_CLI_MCC_5_1x1] = {
|
||||
[PM_STA_MODE] = {PM_24G, PM_24G, PM_24G},
|
||||
[PM_SAP_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE,
|
||||
PM_MAX_PCL_TYPE},
|
||||
[PM_P2P_CLIENT_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_P2P_GO_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_NAN_DISC_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_NDI_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE,
|
||||
PM_MAX_PCL_TYPE} },
|
||||
|
||||
[PM_P2P_CLI_P2P_CLI_MCC_5_2x2] = {
|
||||
[PM_STA_MODE] = {PM_24G, PM_24G, PM_24G},
|
||||
[PM_SAP_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE,
|
||||
PM_MAX_PCL_TYPE},
|
||||
[PM_P2P_CLIENT_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_P2P_GO_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_NAN_DISC_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_NDI_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE,
|
||||
PM_MAX_PCL_TYPE} },
|
||||
|
||||
[PM_P2P_CLI_P2P_CLI_MCC_24_5_1x1] = {
|
||||
[PM_STA_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE,
|
||||
PM_MAX_PCL_TYPE},
|
||||
[PM_SAP_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE,
|
||||
PM_MAX_PCL_TYPE},
|
||||
[PM_P2P_CLIENT_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_P2P_GO_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_NAN_DISC_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_NDI_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE,
|
||||
PM_MAX_PCL_TYPE} },
|
||||
|
||||
[PM_P2P_CLI_P2P_CLI_MCC_24_5_2x2] = {
|
||||
[PM_STA_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE,
|
||||
PM_MAX_PCL_TYPE},
|
||||
[PM_SAP_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE,
|
||||
PM_MAX_PCL_TYPE},
|
||||
[PM_P2P_CLIENT_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_P2P_GO_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_NAN_DISC_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_NDI_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE,
|
||||
PM_MAX_PCL_TYPE} },
|
||||
|
||||
[PM_P2P_CLI_P2P_CLI_DBS_1x1] = {
|
||||
[PM_STA_MODE] = {
|
||||
PM_SCC_ON_5_SCC_ON_24_5G, PM_SCC_ON_5_SCC_ON_24_5G,
|
||||
PM_SCC_ON_5_SCC_ON_24_5G},
|
||||
[PM_SAP_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_P2P_CLIENT_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_P2P_GO_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_NAN_DISC_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_NDI_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE,
|
||||
PM_MAX_PCL_TYPE} },
|
||||
|
||||
[PM_P2P_CLI_P2P_CLI_DBS_2x2] = {
|
||||
[PM_STA_MODE] = { PM_SCC_ON_5_SCC_ON_24_5G,
|
||||
PM_SCC_ON_5_SCC_ON_24_5G,
|
||||
PM_SCC_ON_5_SCC_ON_24_5G},
|
||||
[PM_SAP_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_P2P_CLIENT_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_P2P_GO_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_NAN_DISC_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_NDI_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE,
|
||||
PM_MAX_PCL_TYPE} },
|
||||
|
||||
[PM_P2P_CLI_P2P_CLI_SBS_5_1x1] = {
|
||||
[PM_STA_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_SAP_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_P2P_CLIENT_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_P2P_GO_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_NAN_DISC_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
[PM_NDI_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE,
|
||||
PM_MAX_PCL_TYPE} },
|
||||
|
||||
[PM_STA_P2P_CLI_SCC_24_1x1] = {
|
||||
[PM_STA_MODE] = {
|
||||
PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
|
||||
|
|
|
|||
Loading…
Reference in a new issue