Browse Source

qcacld-3.0: LFR2 DBS roam support

During LFR2 roaming, after the preauth with new AP
and disassociation with current AP are successful,
proper HW mode should be set based on the
existing concurrency scenario.

Change-Id: I312ed10bc844712b3dba36680457198a19f1e85c
CRs-Fixed: 2367224
Rajasekaran Kalidoss 6 years ago
parent
commit
6844254c80

+ 3 - 1
cmn_services/policy_mgr/inc/wlan_policy_mgr_api.h

@@ -361,6 +361,7 @@ bool policy_mgr_check_for_session_conc(
  * policy_mgr_handle_conc_multiport() - to handle multiport concurrency
  * policy_mgr_handle_conc_multiport() - to handle multiport concurrency
  * @session_id: Session ID
  * @session_id: Session ID
  * @channel: Channel number
  * @channel: Channel number
+ * @reason: reason for connection update
  *
  *
  * This routine will handle STA side concurrency when policy manager
  * This routine will handle STA side concurrency when policy manager
  * is enabled.
  * is enabled.
@@ -368,7 +369,8 @@ bool policy_mgr_check_for_session_conc(
  * Return: QDF_STATUS
  * Return: QDF_STATUS
  */
  */
 QDF_STATUS policy_mgr_handle_conc_multiport(
 QDF_STATUS policy_mgr_handle_conc_multiport(
-	struct wlan_objmgr_psoc *psoc, uint8_t session_id, uint8_t channel);
+	struct wlan_objmgr_psoc *psoc, uint8_t session_id, uint8_t channel,
+	enum policy_mgr_conn_update_reason reason);
 
 
 #ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
 #ifdef FEATURE_WLAN_MCC_TO_SCC_SWITCH
 /**
 /**

+ 1 - 0
cmn_services/policy_mgr/inc/wlan_policy_mgr_public_struct.h

@@ -811,6 +811,7 @@ enum policy_mgr_conn_update_reason {
 	POLICY_MGR_UPDATE_REASON_PRI_VDEV_CHANGE,
 	POLICY_MGR_UPDATE_REASON_PRI_VDEV_CHANGE,
 	POLICY_MGR_UPDATE_REASON_NAN_DISCOVERY,
 	POLICY_MGR_UPDATE_REASON_NAN_DISCOVERY,
 	POLICY_MGR_UPDATE_REASON_NDP_UPDATE,
 	POLICY_MGR_UPDATE_REASON_NDP_UPDATE,
+	POLICY_MGR_UPDATE_REASON_LFR2_ROAM,
 };
 };
 
 
 /**
 /**

+ 3 - 3
cmn_services/policy_mgr/src/wlan_policy_mgr_action.c

@@ -1186,7 +1186,8 @@ QDF_STATUS policy_mgr_next_actions(
 }
 }
 
 
 QDF_STATUS policy_mgr_handle_conc_multiport(struct wlan_objmgr_psoc *psoc,
 QDF_STATUS policy_mgr_handle_conc_multiport(struct wlan_objmgr_psoc *psoc,
-		uint8_t session_id, uint8_t channel)
+		uint8_t session_id, uint8_t channel,
+		enum policy_mgr_conn_update_reason reason)
 {
 {
 	QDF_STATUS status;
 	QDF_STATUS status;
 
 
@@ -1201,8 +1202,7 @@ QDF_STATUS policy_mgr_handle_conc_multiport(struct wlan_objmgr_psoc *psoc,
 		policy_mgr_err("clearing event failed");
 		policy_mgr_err("clearing event failed");
 
 
 	status = policy_mgr_current_connections_update(psoc, session_id,
 	status = policy_mgr_current_connections_update(psoc, session_id,
-			channel,
-			POLICY_MGR_UPDATE_REASON_NORMAL_STA);
+			channel, reason);
 	if (QDF_STATUS_E_FAILURE == status) {
 	if (QDF_STATUS_E_FAILURE == status) {
 		policy_mgr_err("connections update failed");
 		policy_mgr_err("connections update failed");
 		return status;
 		return status;