Parcourir la source

qcacld-3.0: PCL update for case about SAP and NAN

Updated PCL table to support 3-port concurrency AP+NAN_DISC+NDI/NDP
and 4-port concurrency scenarios AP+AP+NAN_DISC+NDI/NDP.

Change-Id: Ic8ba4d12651d42b6c07cf86125a17071a57683d2
CRs-Fixed: 2508242
Wu Gao il y a 5 ans
Parent
commit
6b778803fc

+ 25 - 0
components/cmn_services/policy_mgr/inc/wlan_policy_mgr_public_struct.h

@@ -568,6 +568,16 @@ enum policy_mgr_one_connection_mode {
  *			1x1
  * @PM_SAP_SAP_DBS_2x2: SAP & SAP connection on DBS using 2x2
  * @PM_SAP_SAP_SBS_5_1x1: SAP & SAP connection on 5G SBS using 1x1
+ * @PM_SAP_NAN_DISC_SCC_24_1x1: SAP & NAN connection on
+ *			SCC using [email protected] Ghz
+ * @PM_SAP_NAN_DISC_SCC_24_2x2: SAP & NAN connection on
+ *			SCC using [email protected] Ghz
+ * @PM_SAP_NAN_DISC_MCC_24_1x1: SAP & NAN connection on
+ *			MCC using [email protected] Ghz
+ * @PM_SAP_NAN_DISC_MCC_24_2x2: SAP & NAN connection on
+ *			SCC using [email protected] Ghz
+ * @PM_SAP_NAN_DISC_DBS_1x1: SAP & NAN connection on DBS using 1x1
+ * @PM_SAP_NAN_DISC_DBS_2x2: SAP & NAN connection on DBS using 2x2
  * @PM_STA_STA_SCC_24_1x1: STA & STA connection on
  *			SCC using [email protected] Ghz
  * @PM_STA_STA_SCC_24_2x2: STA & STA connection on
@@ -715,6 +725,12 @@ enum policy_mgr_two_connection_mode {
 	PM_SAP_SAP_DBS_1x1,
 	PM_SAP_SAP_DBS_2x2,
 	PM_SAP_SAP_SBS_5_1x1,
+	PM_SAP_NAN_DISC_SCC_24_1x1,
+	PM_SAP_NAN_DISC_SCC_24_2x2,
+	PM_SAP_NAN_DISC_MCC_24_1x1,
+	PM_SAP_NAN_DISC_MCC_24_2x2,
+	PM_SAP_NAN_DISC_DBS_1x1,
+	PM_SAP_NAN_DISC_DBS_2x2,
 	PM_STA_STA_SCC_24_1x1,
 	PM_STA_STA_SCC_24_2x2,
 	PM_STA_STA_MCC_24_1x1,
@@ -769,12 +785,21 @@ enum policy_mgr_two_connection_mode {
  * STA on 5G
  * @PM_STA_SAP_SCC_5_STA_24_DBS: STA & SAP connection on 5 Ghz SCC, another
  * STA on 2.4 G
+ * @PM_NAN_DISC_SAP_SCC_24_NDI_5_DBS: NAN_DISC & SAP connection on 2.4 Ghz SCC,
+ * NDI/NDP on 5 G
+ * @PM_NAN_DISC_NDI_SCC_24_SAP_5_DBS: NAN_DISC & NDI/NDP connection on 2.4 Ghz
+ * SCC, SAP on 5 G
+ * @PM_SAP_NDI_SCC_5_NAN_DISC_24_DBS: SAP & NDI/NDP connection on 5 Ghz,
+ * NAN_DISC on 24 Ghz
  */
 enum policy_mgr_three_connection_mode {
 	PM_STA_SAP_SCC_24_SAP_5_DBS,
 	PM_STA_SAP_SCC_5_SAP_24_DBS,
 	PM_STA_SAP_SCC_24_STA_5_DBS,
 	PM_STA_SAP_SCC_5_STA_24_DBS,
+	PM_NAN_DISC_SAP_SCC_24_NDI_5_DBS,
+	PM_NAN_DISC_NDI_SCC_24_SAP_5_DBS,
+	PM_SAP_NDI_SCC_5_NAN_DISC_24_DBS,
 
 	PM_MAX_THREE_CONNECTION_MODE
 };

+ 71 - 5
components/cmn_services/policy_mgr/src/wlan_policy_mgr_pcl.c

@@ -1630,7 +1630,7 @@ static enum policy_mgr_two_connection_mode
 	/* SCC */
 	if (pm_conc_connection_list[0].freq ==
 		pm_conc_connection_list[1].freq) {
-		/* NAN Discovery can only be on 2.4GHz */
+		/* Policy mgr only considers NAN Disc ch in 2.4GHz */
 		if (POLICY_MGR_ONE_ONE == pm_conc_connection_list[0].chain_mask)
 			index = PM_NAN_DISC_NDI_SCC_24_1x1;
 		else
@@ -1638,7 +1638,7 @@ static enum policy_mgr_two_connection_mode
 	/* MCC */
 	} else if (pm_conc_connection_list[0].mac ==
 		pm_conc_connection_list[1].mac) {
-		/* NAN Discovery can only be on 2.4GHz */
+		/* Policy mgr only considers NAN Disc ch in 2.4GHz */
 		if (POLICY_MGR_ONE_ONE == pm_conc_connection_list[0].chain_mask)
 			index = PM_NAN_DISC_NDI_MCC_24_1x1;
 		else
@@ -1661,7 +1661,7 @@ static enum policy_mgr_two_connection_mode
 	/* SCC */
 	if (pm_conc_connection_list[0].freq ==
 		pm_conc_connection_list[1].freq) {
-		/* NAN Discovery can only be on 2.4GHz */
+		/* Policy mgr only considers NAN Disc ch in 2.4GHz */
 		if (POLICY_MGR_ONE_ONE == pm_conc_connection_list[0].chain_mask)
 			index = PM_STA_NAN_DISC_SCC_24_1x1;
 		else
@@ -1669,7 +1669,7 @@ static enum policy_mgr_two_connection_mode
 	/* MCC */
 	} else if (pm_conc_connection_list[0].mac ==
 		pm_conc_connection_list[1].mac) {
-		/* NAN Discovery can only be on 2.4GHz */
+		/* Policy mgr only considers NAN Disc ch in 2.4 GHz */
 		if (POLICY_MGR_ONE_ONE == pm_conc_connection_list[0].chain_mask)
 			index = PM_STA_NAN_DISC_MCC_24_1x1;
 		else
@@ -1685,6 +1685,37 @@ static enum policy_mgr_two_connection_mode
 	return index;
 }
 
+static enum policy_mgr_two_connection_mode
+		policy_mgr_get_third_connection_pcl_table_index_sap_nan(void)
+{
+	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) {
+		/* Policy mgr only considers NAN Disc ch in 2.4 GHz */
+		if (POLICY_MGR_ONE_ONE == pm_conc_connection_list[0].chain_mask)
+			index = PM_SAP_NAN_DISC_SCC_24_1x1;
+		else
+			index = PM_SAP_NAN_DISC_SCC_24_2x2;
+	/* MCC */
+	} else if (pm_conc_connection_list[0].mac ==
+		pm_conc_connection_list[1].mac) {
+		/* Policy mgr only considers NAN Disc ch in 2.4GHz */
+		if (POLICY_MGR_ONE_ONE == pm_conc_connection_list[0].chain_mask)
+			index = PM_SAP_NAN_DISC_MCC_24_1x1;
+		else
+			index = PM_SAP_NAN_DISC_MCC_24_2x2;
+	/* DBS */
+	} else if (pm_conc_connection_list[0].mac !=
+			pm_conc_connection_list[1].mac) {
+		if (POLICY_MGR_ONE_ONE == pm_conc_connection_list[0].chain_mask)
+			index = PM_SAP_NAN_DISC_DBS_1x1;
+		else
+			index = PM_SAP_NAN_DISC_DBS_2x2;
+	}
+	return index;
+}
+
 enum policy_mgr_two_connection_mode
 		policy_mgr_get_third_connection_pcl_table_index(
 		struct wlan_objmgr_psoc *psoc)
@@ -1757,6 +1788,12 @@ enum policy_mgr_two_connection_mode
 		(PM_NAN_DISC_MODE == pm_conc_connection_list[1].mode)))
 		index =
 		policy_mgr_get_third_connection_pcl_table_index_nan_ndi();
+	else if (((PM_SAP_MODE == pm_conc_connection_list[0].mode) &&
+		  (PM_NAN_DISC_MODE == pm_conc_connection_list[1].mode)) ||
+		((PM_NAN_DISC_MODE == pm_conc_connection_list[0].mode) &&
+		 (PM_SAP_MODE == pm_conc_connection_list[1].mode)))
+		index =
+		policy_mgr_get_third_connection_pcl_table_index_sap_nan();
 	else if ((pm_conc_connection_list[0].mode == PM_P2P_GO_MODE) &&
 		 (pm_conc_connection_list[1].mode == PM_P2P_GO_MODE))
 		index =
@@ -1784,8 +1821,12 @@ enum policy_mgr_three_connection_mode
 	struct policy_mgr_psoc_priv_obj *pm_ctx;
 	uint32_t count_sap = 0;
 	uint32_t count_sta = 0;
+	uint32_t count_ndi = 0;
+	uint32_t count_nan_disc = 0;
 	uint32_t list_sap[MAX_NUMBER_OF_CONC_CONNECTIONS];
 	uint32_t list_sta[MAX_NUMBER_OF_CONC_CONNECTIONS];
+	uint32_t list_ndi[MAX_NUMBER_OF_CONC_CONNECTIONS];
+	uint32_t list_nan_disc[MAX_NUMBER_OF_CONC_CONNECTIONS];
 
 	pm_ctx = policy_mgr_get_context(psoc);
 	if (!pm_ctx) {
@@ -1805,7 +1846,12 @@ enum policy_mgr_three_connection_mode
 				psoc, PM_P2P_GO_MODE, &list_sap[count_sap]);
 	count_sta = policy_mgr_mode_specific_connection_count(
 				psoc, PM_STA_MODE, list_sta);
-	policy_mgr_debug("sap/ago num: %d, sta num: %d", count_sap, count_sta);
+	count_ndi = policy_mgr_mode_specific_connection_count(
+				psoc, PM_NDI_MODE, list_ndi);
+	count_nan_disc = policy_mgr_mode_specific_connection_count(
+				psoc, PM_NAN_DISC_MODE, list_nan_disc);
+	policy_mgr_debug("sap/ago %d, sta %d, ndi %d nan disc %d",
+			 count_sap, count_sta, count_ndi, count_nan_disc);
 	if (count_sap == 2 && count_sta == 1) {
 		policy_mgr_debug(
 			"channel: sap0: %d, sap1: %d, sta0: %d",
@@ -1880,6 +1926,26 @@ enum policy_mgr_three_connection_mode
 		} else {
 			index =  PM_MAX_THREE_CONNECTION_MODE;
 		}
+	} else if (count_nan_disc == 1 && count_ndi == 1 && count_sap == 1) {
+		/* Policy mgr only considers NAN Disc ch in 2.4GHz */
+		if (WLAN_REG_IS_24GHZ_CH_FREQ(
+			pm_conc_connection_list[list_sap[0]].freq) &&
+		    WLAN_REG_IS_5GHZ_CH_FREQ(
+			pm_conc_connection_list[list_ndi[0]].freq)) {
+			index = PM_NAN_DISC_SAP_SCC_24_NDI_5_DBS;
+		} else if (WLAN_REG_IS_5GHZ_CH_FREQ(
+			pm_conc_connection_list[list_sap[0]].freq) &&
+			   WLAN_REG_IS_24GHZ_CH_FREQ(
+			pm_conc_connection_list[list_ndi[0]].freq)) {
+			index = PM_NAN_DISC_NDI_SCC_24_SAP_5_DBS;
+		} else if (WLAN_REG_IS_5GHZ_CH_FREQ(
+			pm_conc_connection_list[list_sap[0]].freq) &&
+			  WLAN_REG_IS_5GHZ_CH_FREQ(
+			pm_conc_connection_list[list_ndi[0]].freq)) {
+			index = PM_SAP_NDI_SCC_5_NAN_DISC_24_DBS;
+		} else {
+			index = PM_MAX_THREE_CONNECTION_MODE;
+		}
 	}
 
 	policy_mgr_debug(

+ 75 - 13
components/cmn_services/policy_mgr/src/wlan_policy_mgr_tables_2x2_dbs_i.h

@@ -542,8 +542,7 @@ pm_third_connection_pcl_dbs_2x2_table = {
 	[PM_P2P_GO_MODE] = {PM_24G, PM_24G, PM_24G},
 	[PM_IBSS_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_NAN_DISC_MODE] = {PM_24G, PM_24G, PM_24G},
 	[PM_NDI_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE} },
 
 	[PM_SAP_SAP_SCC_5_2x2] = {
@@ -555,8 +554,7 @@ pm_third_connection_pcl_dbs_2x2_table = {
 	[PM_P2P_GO_MODE] = {PM_24G, PM_24G, PM_24G},
 	[PM_IBSS_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_NAN_DISC_MODE] = {PM_24G, PM_24G, PM_24G},
 	[PM_NDI_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE} },
 
 	[PM_SAP_SAP_MCC_5_1x1] = {
@@ -622,8 +620,7 @@ pm_third_connection_pcl_dbs_2x2_table = {
 		PM_SCC_ON_5_SCC_ON_24},
 	[PM_IBSS_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_NAN_DISC_MODE] = {PM_SCC_CH_24G, PM_SCC_CH_24G, PM_SCC_CH_24G},
 	[PM_NDI_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE} },
 
 	[PM_SAP_SAP_DBS_2x2] = {
@@ -637,8 +634,7 @@ pm_third_connection_pcl_dbs_2x2_table = {
 		PM_SCC_ON_5_SCC_ON_24},
 	[PM_IBSS_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_NAN_DISC_MODE] = {PM_SCC_CH_24G, PM_SCC_CH_24G, PM_SCC_CH_24G},
 	[PM_NDI_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE} },
 
 	[PM_SAP_SAP_SBS_5_1x1] = {
@@ -656,6 +652,64 @@ 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_SAP_NAN_DISC_SCC_24_1x1] = {
+	[PM_STA_MODE] = {PM_5G_SCC_CH, PM_5G_SCC_CH, PM_5G_SCC_CH},
+	[PM_SAP_MODE] = {PM_5G_SCC_CH, PM_5G_SCC_CH, PM_5G_SCC_CH},
+	[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_IBSS_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_SAP_NAN_DISC_SCC_24_2x2] = {
+	[PM_STA_MODE] = {PM_5G_SCC_CH, PM_5G_SCC_CH, PM_5G_SCC_CH},
+	[PM_SAP_MODE] = {PM_5G_SCC_CH, PM_5G_SCC_CH, PM_5G_SCC_CH},
+	[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_IBSS_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_SAP_NAN_DISC_MCC_24_1x1] = {
+	[PM_STA_MODE] = {PM_5G_SCC_CH, PM_5G_SCC_CH, PM_5G_SCC_CH},
+	[PM_SAP_MODE] = {PM_5G_SCC_CH, PM_5G_SCC_CH, PM_5G_SCC_CH},
+	[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_IBSS_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_SAP_NAN_DISC_MCC_24_2x2] = {
+	[PM_STA_MODE] = {PM_5G_SCC_CH, PM_5G_SCC_CH, PM_5G_SCC_CH},
+	[PM_SAP_MODE] = {PM_5G_SCC_CH, PM_5G_SCC_CH, PM_5G_SCC_CH},
+	[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_IBSS_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_SAP_NAN_DISC_DBS_1x1] = {
+	[PM_STA_MODE] = {PM_SCC_ON_24_SCC_ON_5_5G, PM_SCC_ON_24_SCC_ON_5_5G,
+			 PM_SCC_ON_24_SCC_ON_5_5G},
+	[PM_SAP_MODE] = {PM_SCC_ON_24_SCC_ON_5_5G, PM_SCC_ON_24_SCC_ON_5_5G,
+			 PM_SCC_ON_24_SCC_ON_5_5G},
+	[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_IBSS_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_SAP_NAN_DISC_DBS_2x2] = {
+	[PM_STA_MODE] = {PM_SCC_ON_24_SCC_ON_5_5G, PM_SCC_ON_24_SCC_ON_5_5G,
+			 PM_SCC_ON_24_SCC_ON_5_5G},
+	[PM_SAP_MODE] = {PM_SCC_ON_24_SCC_ON_5_5G, PM_SCC_ON_24_SCC_ON_5_5G,
+			 PM_SCC_ON_24_SCC_ON_5_5G},
+	[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_IBSS_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_GO_SCC_24_1x1] = {
 		[PM_STA_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE,
 		PM_MAX_PCL_TYPE},
@@ -1841,7 +1895,7 @@ pm_third_connection_pcl_dbs_2x2_table = {
 
 	[PM_NAN_DISC_NDI_SCC_24_2x2] = {
 	[PM_STA_MODE] = {PM_5G_SCC_CH, PM_5G_SCC_CH, PM_5G_SCC_CH},
-	[PM_SAP_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
+	[PM_SAP_MODE] = {PM_5G, PM_5G, PM_5G},
 	[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},
@@ -1849,7 +1903,7 @@ pm_third_connection_pcl_dbs_2x2_table = {
 
 	[PM_NAN_DISC_NDI_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_SAP_MODE] = {PM_5G, PM_5G, PM_5G},
 	[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},
@@ -1857,7 +1911,7 @@ pm_third_connection_pcl_dbs_2x2_table = {
 
 	[PM_NAN_DISC_NDI_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_SAP_MODE] = {PM_5G, PM_5G, PM_5G},
 	[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},
@@ -1866,7 +1920,8 @@ pm_third_connection_pcl_dbs_2x2_table = {
 	[PM_NAN_DISC_NDI_DBS_1x1] = {
 	[PM_STA_MODE] = {PM_SCC_ON_24_SCC_ON_5_5G, PM_SCC_ON_24_SCC_ON_5_5G,
 		PM_SCC_ON_24_SCC_ON_5_5G},
-	[PM_SAP_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
+	[PM_SAP_MODE] = {PM_SCC_ON_24_SCC_ON_5_5G, PM_SCC_ON_24_SCC_ON_5_5G,
+		PM_SCC_ON_24_SCC_ON_5_5G},
 	[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},
@@ -1875,7 +1930,8 @@ pm_third_connection_pcl_dbs_2x2_table = {
 	[PM_NAN_DISC_NDI_DBS_2x2] = {
 	[PM_STA_MODE] = {PM_SCC_ON_24_SCC_ON_5_5G, PM_SCC_ON_24_SCC_ON_5_5G,
 		PM_SCC_ON_24_SCC_ON_5_5G},
-	[PM_SAP_MODE] = {PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE, PM_MAX_PCL_TYPE},
+	[PM_SAP_MODE] = {PM_SCC_ON_24_SCC_ON_5_5G, PM_SCC_ON_24_SCC_ON_5_5G,
+		PM_SCC_ON_24_SCC_ON_5_5G},
 	[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},
@@ -1899,6 +1955,12 @@ fourth_connection_pcl_dbs_table
 	[PM_STA_SAP_SCC_24_STA_5_DBS] = {
 	[PM_SAP_MODE] = { PM_5G, PM_5G, PM_5G } },
 	[PM_STA_SAP_SCC_5_STA_24_DBS] = {
+	[PM_SAP_MODE] = { PM_24G, PM_24G, PM_24G } },
+	[PM_NAN_DISC_SAP_SCC_24_NDI_5_DBS] = {
+	[PM_SAP_MODE] = { PM_5G, PM_5G, PM_5G } },
+	[PM_NAN_DISC_NDI_SCC_24_SAP_5_DBS] = {
+	[PM_SAP_MODE] = { PM_5G, PM_5G, PM_5G } },
+	[PM_SAP_NDI_SCC_5_NAN_DISC_24_DBS] = {
 	[PM_SAP_MODE] = { PM_24G, PM_24G, PM_24G } }
 };
 #endif