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:
Vinod Kumar Myadam 2021-10-04 17:57:59 +05:30 • committed by Madan Koyyalamudi
commit 76fdddbcb7
3 changed files with 413 additions and 57 deletions

View file

@ -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
};

View file

@ -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,

View file

@ -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},