diff --git a/components/cmn_services/policy_mgr/inc/wlan_policy_mgr_public_struct.h b/components/cmn_services/policy_mgr/inc/wlan_policy_mgr_public_struct.h index 405a70d7bf..842f0d2155 100644 --- a/components/cmn_services/policy_mgr/inc/wlan_policy_mgr_public_struct.h +++ b/components/cmn_services/policy_mgr/inc/wlan_policy_mgr_public_struct.h @@ -846,6 +846,8 @@ enum policy_mgr_two_connection_mode { * 5ghz DBS * @PM_NDI_NDI_5_NAN_DISC_24_DBS: Both NDI on 5ghz and NAN Disc on 2.4Ghz DBS * @PM_NDI_NDI_NAN_DISC_24_SMM: Both NDI, NAN Disc on 2.4ghz SMM + * @PM_SAP_SAP_SCC_24_SAP_5_DBS: Both SAP on 2.4Ghz and another SAP on 5Ghz DBS + * @PM_SAP_SAP_SCC_5_SAP_24_DBS: Both SAP on 5Ghz and another SAP on 2.4Ghz DBS */ enum policy_mgr_three_connection_mode { PM_STA_SAP_SCC_24_SAP_5_DBS, @@ -862,6 +864,8 @@ enum policy_mgr_three_connection_mode { PM_NAN_DISC_NDI_24_NDI_5_DBS, PM_NDI_NDI_5_NAN_DISC_24_DBS, PM_NDI_NDI_NAN_DISC_24_SMM, + PM_SAP_SAP_SCC_24_SAP_5_DBS, + PM_SAP_SAP_SCC_5_SAP_24_DBS, PM_MAX_THREE_CONNECTION_MODE }; diff --git a/components/cmn_services/policy_mgr/src/wlan_policy_mgr_pcl.c b/components/cmn_services/policy_mgr/src/wlan_policy_mgr_pcl.c index f92eb402b0..ff8515cdd2 100644 --- a/components/cmn_services/policy_mgr/src/wlan_policy_mgr_pcl.c +++ b/components/cmn_services/policy_mgr/src/wlan_policy_mgr_pcl.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2012-2021 The Linux Foundation. All rights reserved. + * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -2021,6 +2022,32 @@ enum policy_mgr_three_connection_mode pm_conc_connection_list[list_ndi[0]].freq)) { index = PM_NDI_NDI_NAN_DISC_24_SMM; } + } else if (count_sap == 3) { + if (WLAN_REG_IS_SAME_BAND_FREQS( + pm_conc_connection_list[list_sap[0]].freq, + pm_conc_connection_list[list_sap[1]].freq)) { + if (WLAN_REG_IS_24GHZ_CH_FREQ( + pm_conc_connection_list[list_sap[2]].freq)) + index = PM_SAP_SAP_SCC_5_SAP_24_DBS; + else + index = PM_SAP_SAP_SCC_24_SAP_5_DBS; + } else if (WLAN_REG_IS_SAME_BAND_FREQS( + pm_conc_connection_list[list_sap[0]].freq, + pm_conc_connection_list[list_sap[2]].freq)) { + if (WLAN_REG_IS_24GHZ_CH_FREQ( + pm_conc_connection_list[list_sap[1]].freq)) + index = PM_SAP_SAP_SCC_5_SAP_24_DBS; + else + index = PM_SAP_SAP_SCC_24_SAP_5_DBS; + } else if (WLAN_REG_IS_SAME_BAND_FREQS( + pm_conc_connection_list[list_sap[1]].freq, + pm_conc_connection_list[list_sap[2]].freq)) { + if (WLAN_REG_IS_24GHZ_CH_FREQ( + pm_conc_connection_list[list_sap[0]].freq)) + index = PM_SAP_SAP_SCC_5_SAP_24_DBS; + else + index = PM_SAP_SAP_SCC_24_SAP_5_DBS; + } } policy_mgr_debug( diff --git a/components/cmn_services/policy_mgr/src/wlan_policy_mgr_tables_2x2_dbs_i.h b/components/cmn_services/policy_mgr/src/wlan_policy_mgr_tables_2x2_dbs_i.h index a6722824b0..ead05d7e4c 100644 --- a/components/cmn_services/policy_mgr/src/wlan_policy_mgr_tables_2x2_dbs_i.h +++ b/components/cmn_services/policy_mgr/src/wlan_policy_mgr_tables_2x2_dbs_i.h @@ -1,5 +1,6 @@ /* * Copyright (c) 2012-2021 The Linux Foundation. All rights reserved. + * Copyright (c) 2021 Qualcomm Innovation Center, Inc. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software for * any purpose with or without fee is hereby granted, provided that the @@ -1932,6 +1933,16 @@ fourth_connection_pcl_dbs_table [PM_SAP_NDI_SCC_5_NAN_DISC_24_DBS] = { [PM_SAP_MODE] = { PM_24G, PM_24G, PM_24G } } }; +#elif defined(MDM_PLATFORM) +const enum policy_mgr_pcl_type +fourth_connection_pcl_dbs_table + [PM_MAX_THREE_CONNECTION_MODE][PM_MAX_NUM_OF_MODE] + [PM_MAX_CONC_PRIORITY_MODE] = { + [PM_SAP_SAP_SCC_24_SAP_5_DBS] = { + [PM_SAP_MODE] = { PM_5G, PM_5G, PM_5G } }, + [PM_SAP_SAP_SCC_5_SAP_24_DBS] = { + [PM_SAP_MODE] = { PM_24G, PM_24G, PM_24G } } +}; #else /** * fourth_connection_pcl_dbs_table - table which provides PCL for