Browse Source

qcacmn: Add ENABLE_DBS_CXN_AND_DISABLE_DBS_SCAN

Add ENABLE_DBS_CXN_AND_DISABLE_DBS_SCAN option for the ini
gDualMacFeatureDisable. To enable DBS support for the
connection and disable DBS support for the scan.

Change-Id: I05c613467195fffac98e79b7e4a2991471ac1d80
CRs-Fixed: 2207820
Bala Venkatesh 7 years ago
parent
commit
2438a563c5

+ 3 - 0
umac/cmn_services/policy_mgr/inc/wlan_policy_mgr_public_struct.h

@@ -815,6 +815,8 @@ enum policy_mgr_hw_mode_change {
  * for connection but keep dbs for scan but switch off the async scan
  * @ENABLE_DBS_CXN_AND_ENABLE_SCAN_WITH_ASYNC_SCAN_OFF: enable dbs support for
  * connection and scan but switch off the async scan
+ * @ENABLE_DBS_CXN_AND_DISABLE_DBS_SCAN: Enable DBS support for connection and
+ * disable DBS support for scan
  */
 enum dbs_support {
 	ENABLE_DBS_CXN_AND_SCAN,
@@ -822,6 +824,7 @@ enum dbs_support {
 	DISABLE_DBS_CXN_AND_ENABLE_DBS_SCAN,
 	DISABLE_DBS_CXN_AND_ENABLE_DBS_SCAN_WITH_ASYNC_SCAN_OFF,
 	ENABLE_DBS_CXN_AND_ENABLE_SCAN_WITH_ASYNC_SCAN_OFF,
+	ENABLE_DBS_CXN_AND_DISABLE_DBS_SCAN
 };
 
 /**

+ 11 - 4
umac/cmn_services/policy_mgr/src/wlan_policy_mgr_get_set_utils.c

@@ -2683,11 +2683,13 @@ uint32_t policy_mgr_get_hw_dbs_nss(struct wlan_objmgr_psoc *psoc,
 
 bool policy_mgr_is_scan_simultaneous_capable(struct wlan_objmgr_psoc *psoc)
 {
-	if (DISABLE_DBS_CXN_AND_SCAN !=
-			wlan_objmgr_psoc_get_dual_mac_disable(psoc))
-		return true;
+	if ((DISABLE_DBS_CXN_AND_SCAN ==
+	     wlan_objmgr_psoc_get_dual_mac_disable(psoc)) ||
+	    (ENABLE_DBS_CXN_AND_DISABLE_DBS_SCAN ==
+	     wlan_objmgr_psoc_get_dual_mac_disable(psoc)))
+		return false;
 
-	return false;
+	return true;
 }
 
 void policy_mgr_set_cur_conc_system_pref(struct wlan_objmgr_psoc *psoc,
@@ -2752,6 +2754,11 @@ QDF_STATUS policy_mgr_get_updated_scan_and_fw_mode_config(
 			dual_mac_disable_ini);
 		WMI_DBS_CONC_SCAN_CFG_ASYNC_DBS_SCAN_SET(*scan_config, 0);
 		break;
+	case ENABLE_DBS_CXN_AND_DISABLE_DBS_SCAN:
+		policy_mgr_debug("%s: dual_mac_disable_ini:%d ", __func__,
+				dual_mac_disable_ini);
+		WMI_DBS_CONC_SCAN_CFG_DBS_SCAN_SET(*scan_config, 0);
+		break;
 	default:
 		break;
 	}

+ 4 - 2
umac/scan/dispatcher/src/wlan_scan_ucfg_api.c

@@ -426,8 +426,10 @@ ucfg_scan_update_dbs_scan_ctrl_ext_flag(struct scan_start_request *req)
 
 	psoc = wlan_vdev_get_psoc(req->vdev);
 
-	if (DISABLE_DBS_CXN_AND_SCAN ==
-			wlan_objmgr_psoc_get_dual_mac_disable(psoc))
+	if ((DISABLE_DBS_CXN_AND_SCAN ==
+	     wlan_objmgr_psoc_get_dual_mac_disable(psoc)) ||
+	    (ENABLE_DBS_CXN_AND_DISABLE_DBS_SCAN ==
+	     wlan_objmgr_psoc_get_dual_mac_disable(psoc)))
 		goto end;
 
 	if (req->scan_req.scan_policy_high_accuracy)