浏览代码

qcacmn: Add logic to force SCC in SAP+STA concurrency with ACS

If STA is up & SAP is comings up on a ACS derived channel causing MCC,
move SAP to the other band if DBS is supported. This logic is enabled
only if gWlanMccToSccSwitchMode is set to
QDF_MCC_TO_SCC_SWITCH_FORCE_WITHOUT_DISCONNECTION.

Change-Id: I48d809f83921292f51ca1735bff4c4d6dd339975
CRs-Fixed: 2063060
Tushnim Bhattacharyya 7 年之前
父节点
当前提交
abf086a231

+ 15 - 0
umac/cmn_services/policy_mgr/inc/wlan_policy_mgr_api.h

@@ -1983,4 +1983,19 @@ QDF_STATUS policy_mgr_valid_sap_conc_channel_check(
  */
 uint8_t policy_mgr_get_alternate_channel_for_sap(
 	struct wlan_objmgr_psoc *psoc);
+
+/**
+ * policy_mgr_disallow_mcc() - Check for mcc
+ *
+ * @psoc: PSOC object information
+ * @channel: channel on which new connection is coming up
+ *
+ * When a new connection is about to come up check if current
+ * concurrency combination including the new connection is
+ * causing MCC
+ *
+ * Return: True if it is causing MCC
+ */
+bool policy_mgr_disallow_mcc(struct wlan_objmgr_psoc *psoc,
+		uint8_t channel);
 #endif /* __WLAN_POLICY_MGR_API_H */

+ 0 - 2
umac/cmn_services/policy_mgr/src/wlan_policy_mgr_i.h

@@ -370,8 +370,6 @@ QDF_STATUS policy_mgr_get_channel_list(struct wlan_objmgr_psoc *psoc,
 			uint8_t *pcl_channels, uint32_t *len,
 			enum policy_mgr_con_mode mode,
 			uint8_t *pcl_weights, uint32_t weight_len);
-bool policy_mgr_disallow_mcc(struct wlan_objmgr_psoc *psoc,
-		uint8_t channel);
 bool policy_mgr_allow_new_home_channel(struct wlan_objmgr_psoc *psoc,
 			uint8_t channel, uint32_t num_connections);
 bool policy_mgr_is_5g_channel_allowed(struct wlan_objmgr_psoc *psoc,

+ 1 - 2
umac/cmn_services/policy_mgr/src/wlan_policy_mgr_pcl.c

@@ -1653,8 +1653,7 @@ QDF_STATUS policy_mgr_get_valid_chan_weights(struct wlan_objmgr_psoc *psoc,
 		for (i = 0; i < weight->saved_num_chan; i++) {
 			if (policy_mgr_allow_concurrency(psoc, PM_STA_MODE,
 					weight->saved_chan_list[i],
-					HW_MODE_20_MHZ) &&
-					!policy_mgr_is_force_scc(psoc)) {
+					HW_MODE_20_MHZ)) {
 				weight->weighed_valid_list[i] =
 					WEIGHT_OF_NON_PCL_CHANNELS;
 			}