Browse Source

qcacld-3.0: Move code from csr to rso for 11k offload

Move code from csr to rso for 11k offload.

Change-Id: I8930ca381a8af45e39d3ed69cb1614ccc363f766
CRs-Fixed: 2861183
hqu 4 years ago
parent
commit
46d7e82b98

+ 46 - 1
components/fw_offload/core/src/wlan_fw_offload_main.c

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2018-2021 The Linux Foundation. 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
@@ -156,6 +156,49 @@ fwol_init_thermal_temp_in_cfg(struct wlan_objmgr_psoc *psoc,
 
 }
 
+/**
+ * fwol_set_neighbor_report_offload_params: set neighbor report parameters
+ *                                          for rso user config
+ * @psoc: The global psoc handler
+ * @fwol_neighbor_report_cfg: neighbor report config params
+ *
+ * Return: none
+ */
+static void
+fwol_set_neighbor_report_offload_params(
+		struct wlan_objmgr_psoc *psoc,
+		struct wlan_fwol_neighbor_report_cfg *fwol_neighbor_report_cfg)
+{
+	struct cm_roam_neighbor_report_offload_params *neighbor_report_offload;
+	struct wlan_mlme_psoc_ext_obj *mlme_obj;
+
+	mlme_obj = mlme_get_psoc_ext_obj(psoc);
+	if (!mlme_obj) {
+		fwol_err("Failed to get MLME Obj");
+		return;
+	}
+
+	neighbor_report_offload = &mlme_obj->cfg.lfr.rso_user_config
+						.neighbor_report_offload;
+
+	neighbor_report_offload->offload_11k_enable_bitmask =
+				fwol_neighbor_report_cfg->enable_bitmask;
+	neighbor_report_offload->params_bitmask =
+				fwol_neighbor_report_cfg->params_bitmask;
+	neighbor_report_offload->time_offset =
+				fwol_neighbor_report_cfg->time_offset;
+	neighbor_report_offload->low_rssi_offset =
+				fwol_neighbor_report_cfg->low_rssi_offset;
+	neighbor_report_offload->bmiss_count_trigger =
+				fwol_neighbor_report_cfg->bmiss_count_trigger;
+	neighbor_report_offload->per_threshold_offset =
+				fwol_neighbor_report_cfg->per_threshold_offset;
+	neighbor_report_offload->neighbor_report_cache_timeout =
+				fwol_neighbor_report_cfg->cache_timeout;
+	neighbor_report_offload->max_neighbor_report_req_cap =
+				fwol_neighbor_report_cfg->max_req_cap;
+}
+
 QDF_STATUS fwol_init_neighbor_report_cfg(struct wlan_objmgr_psoc *psoc,
 					 struct wlan_fwol_neighbor_report_cfg
 					 *fwol_neighbor_report_cfg)
@@ -182,6 +225,8 @@ QDF_STATUS fwol_init_neighbor_report_cfg(struct wlan_objmgr_psoc *psoc,
 	fwol_neighbor_report_cfg->max_req_cap =
 		cfg_get(psoc, CFG_OFFLOAD_NEIGHBOR_REPORT_MAX_REQ_CAP);
 
+	fwol_set_neighbor_report_offload_params(psoc, fwol_neighbor_report_cfg);
+
 	return QDF_STATUS_SUCCESS;
 }
 

+ 1 - 21
components/fw_offload/dispatcher/inc/wlan_fwol_ucfg_api.h

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2018-2021 The Linux Foundation. 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
@@ -165,18 +165,6 @@ QDF_STATUS
 ucfg_fwol_get_thermal_temp(struct wlan_objmgr_psoc *psoc,
 			   struct wlan_fwol_thermal_temp *thermal_temp);
 
-/**
- * ucfg_fwol_get_neighbor_report_cfg() - Get neighbor report config params
- * @psoc: Pointer to psoc object
- * @fwol_neighbor_report_cfg: Pointer to return neighbor report config
- *
- * Return: QDF Status
- */
-QDF_STATUS
-ucfg_fwol_get_neighbor_report_cfg(struct wlan_objmgr_psoc *psoc,
-				  struct wlan_fwol_neighbor_report_cfg
-				  *fwol_neighbor_report_cfg);
-
 /**
  * ucfg_fwol_get_neighbor_report_req() - Get neighbor report request bit
  * @psoc: Pointer to psoc object
@@ -759,14 +747,6 @@ ucfg_fwol_get_thermal_temp(struct wlan_objmgr_psoc *psoc,
 	return QDF_STATUS_E_FAILURE;
 }
 
-static inline QDF_STATUS
-ucfg_fwol_get_neighbor_report_cfg(struct wlan_objmgr_psoc *psoc,
-				  struct wlan_fwol_neighbor_report_cfg
-				  *fwol_neighbor_report_cfg)
-{
-	return QDF_STATUS_E_FAILURE;
-}
-
 static inline QDF_STATUS
 ucfg_fwol_is_neighbor_report_req_supported(struct wlan_objmgr_psoc *psoc,
 					   bool *neighbor_report_req)

+ 1 - 24
components/fw_offload/dispatcher/src/wlan_fwol_ucfg_api.c

@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2018-2020 The Linux Foundation. All rights reserved.
+ * Copyright (c) 2018-2021 The Linux Foundation. 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
@@ -251,29 +251,6 @@ ucfg_fwol_get_thermal_temp(struct wlan_objmgr_psoc *psoc,
 	return QDF_STATUS_SUCCESS;
 }
 
-QDF_STATUS
-ucfg_fwol_get_neighbor_report_cfg(struct wlan_objmgr_psoc *psoc,
-				  struct wlan_fwol_neighbor_report_cfg
-				  *fwol_neighbor_report_cfg)
-{
-	struct wlan_fwol_psoc_obj *fwol_obj;
-	QDF_STATUS status = QDF_STATUS_SUCCESS;
-
-	if (!fwol_neighbor_report_cfg)
-		return QDF_STATUS_E_FAILURE;
-
-	fwol_obj = fwol_get_psoc_obj(psoc);
-	if (!fwol_obj) {
-		fwol_err("Failed to get fwol obj");
-		fwol_init_neighbor_report_cfg(psoc, fwol_neighbor_report_cfg);
-		status =  QDF_STATUS_E_FAILURE;
-	} else {
-		*fwol_neighbor_report_cfg = fwol_obj->cfg.neighbor_report_cfg;
-	}
-
-	return status;
-}
-
 QDF_STATUS
 ucfg_fwol_is_neighbor_report_req_supported(struct wlan_objmgr_psoc *psoc,
 					   bool *neighbor_report_req)

+ 103 - 3
components/umac/mlme/connection_mgr/core/src/wlan_cm_roam_offload.c

@@ -2177,6 +2177,107 @@ cm_roam_scan_btm_offload(struct wlan_objmgr_psoc *psoc,
 	params->btm_candidate_min_score = btm_cfg->btm_trig_min_candidate_score;
 }
 
+/**
+ * cm_roam_offload_11k_params() - set roam 11k offload parameters
+ * @psoc: psoc ctx
+ * @vdev: vdev
+ * @params:  roam 11k offload parameters
+ * @enabled: 11k offload enabled/disabled
+ *
+ * This function is used to set roam 11k offload related parameters
+ *
+ * Return: None
+ */
+static void
+cm_roam_offload_11k_params(struct wlan_objmgr_psoc *psoc,
+			   struct wlan_objmgr_vdev *vdev,
+			   struct wlan_roam_11k_offload_params *params,
+			   bool enabled)
+{
+	struct cm_roam_neighbor_report_offload_params *neighbor_report_offload;
+	struct wlan_mlme_psoc_ext_obj *mlme_obj;
+
+	mlme_obj = mlme_get_psoc_ext_obj(psoc);
+	if (!mlme_obj)
+		return;
+
+	neighbor_report_offload =
+		&mlme_obj->cfg.lfr.rso_user_config.neighbor_report_offload;
+
+	params->vdev_id = wlan_vdev_get_id(vdev);
+
+	if (enabled) {
+		params->offload_11k_bitmask =
+			neighbor_report_offload->offload_11k_enable_bitmask;
+	} else {
+		params->offload_11k_bitmask = 0;
+		return;
+	}
+
+	/*
+	 * If none of the parameters are enabled, then set the
+	 * offload_11k_bitmask to 0, so that we don't send the command
+	 * to the FW and drop it in WMA
+	 */
+	if ((neighbor_report_offload->params_bitmask &
+	    NEIGHBOR_REPORT_PARAMS_ALL) == 0) {
+		mlme_err("No valid neighbor report offload params %x",
+			 neighbor_report_offload->params_bitmask);
+		params->offload_11k_bitmask = 0;
+		return;
+	}
+
+	/*
+	 * First initialize all params to NEIGHBOR_REPORT_PARAM_INVALID
+	 * Then set the values that are enabled
+	 */
+	params->neighbor_report_params.time_offset =
+		NEIGHBOR_REPORT_PARAM_INVALID;
+	params->neighbor_report_params.low_rssi_offset =
+		NEIGHBOR_REPORT_PARAM_INVALID;
+	params->neighbor_report_params.bmiss_count_trigger =
+		NEIGHBOR_REPORT_PARAM_INVALID;
+	params->neighbor_report_params.per_threshold_offset =
+		NEIGHBOR_REPORT_PARAM_INVALID;
+	params->neighbor_report_params.neighbor_report_cache_timeout =
+		NEIGHBOR_REPORT_PARAM_INVALID;
+	params->neighbor_report_params.max_neighbor_report_req_cap =
+		NEIGHBOR_REPORT_PARAM_INVALID;
+
+	if (neighbor_report_offload->params_bitmask &
+	    NEIGHBOR_REPORT_PARAMS_TIME_OFFSET)
+		params->neighbor_report_params.time_offset =
+			neighbor_report_offload->time_offset;
+
+	if (neighbor_report_offload->params_bitmask &
+	    NEIGHBOR_REPORT_PARAMS_LOW_RSSI_OFFSET)
+		params->neighbor_report_params.low_rssi_offset =
+			neighbor_report_offload->low_rssi_offset;
+
+	if (neighbor_report_offload->params_bitmask &
+	    NEIGHBOR_REPORT_PARAMS_BMISS_COUNT_TRIGGER)
+		params->neighbor_report_params.bmiss_count_trigger =
+			neighbor_report_offload->bmiss_count_trigger;
+
+	if (neighbor_report_offload->params_bitmask &
+	    NEIGHBOR_REPORT_PARAMS_PER_THRESHOLD_OFFSET)
+		params->neighbor_report_params.per_threshold_offset =
+			neighbor_report_offload->per_threshold_offset;
+
+	if (neighbor_report_offload->params_bitmask &
+	    NEIGHBOR_REPORT_PARAMS_CACHE_TIMEOUT)
+		params->neighbor_report_params.neighbor_report_cache_timeout =
+			neighbor_report_offload->neighbor_report_cache_timeout;
+
+	if (neighbor_report_offload->params_bitmask &
+	    NEIGHBOR_REPORT_PARAMS_MAX_REQ_CAP)
+		params->neighbor_report_params.max_neighbor_report_req_cap =
+			neighbor_report_offload->max_neighbor_report_req_cap;
+
+	wlan_vdev_mlme_get_ssid(vdev, params->neighbor_report_params.ssid.ssid,
+				&params->neighbor_report_params.ssid.length);
+}
+
 /**
  * cm_roam_start_req() - roam start request handling
  * @psoc: psoc pointer
@@ -2241,9 +2342,8 @@ cm_roam_start_req(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
 					      ROAM_SCAN_OFFLOAD_START,
 					      reason);
 	cm_roam_scan_btm_offload(psoc, vdev, &start_req->btm_config, rso_cfg);
-
-	/* fill from legacy through this API */
-	wlan_cm_roam_fill_start_req(psoc, vdev_id, start_req, reason);
+	cm_roam_offload_11k_params(psoc, vdev, &start_req->roam_11k_params,
+				   true);
 
 	status = wlan_cm_tgt_send_roam_start_req(psoc, vdev_id, start_req);
 	if (QDF_IS_STATUS_ERROR(status))

+ 68 - 47
components/umac/mlme/connection_mgr/dispatcher/inc/wlan_cm_roam_api.h

@@ -44,37 +44,67 @@ QDF_STATUS
 wlan_cm_enable_roaming_on_connected_sta(struct wlan_objmgr_pdev *pdev,
 					uint8_t vdev_id);
 
-#ifndef FEATURE_CM_ENABLE
 /**
- * wlan_cm_roam_cmd_allowed() - check roam cmd is allowed or not
- * @psoc: pointer to psoc object
+ * wlan_cm_roam_send_rso_cmd() - send rso command
+ * @psoc: psoc pointer
  * @vdev_id: vdev id
- * @rso_command: roam scan offload command
- * @reason: reason to roam
+ * @rso_command: roam command to send
+ * @reason: reason for changing roam state for the requested vdev id
  *
- * This function gets called to check roam cmd is allowed or not
+ * similar to csr_roam_offload_scan, will be used from many legacy
+ * process directly, generate a new function wlan_cm_roam_send_rso_cmd
+ * for external usage.
+ *
+ * Return: QDF_STATUS
+ */
+QDF_STATUS wlan_cm_roam_send_rso_cmd(struct wlan_objmgr_psoc *psoc,
+				     uint8_t vdev_id, uint8_t rso_command,
+				     uint8_t reason);
+
+/**
+ * wlan_cm_roam_state_change() - Post roam state change to roam state machine
+ * @pdev: pdev pointer
+ * @vdev_id: vdev id
+ * @requested_state: roam state to be set
+ * @reason: reason for changing roam state for the requested vdev id
+ *
+ * This function posts roam state change to roam state machine handling
+ *
+ * Return: QDF_STATUS
+ */
+QDF_STATUS wlan_cm_roam_state_change(struct wlan_objmgr_pdev *pdev,
+				     uint8_t vdev_id,
+				     enum roam_offload_state requested_state,
+				     uint8_t reason);
+
+/**
+ * csr_roam_update_cfg() - Process RSO update cfg request
+ * @psoc: psoc context
+ * @vdev_id: vdev id
+ * @reason: reason for requesting RSO update cfg
  *
  * Return: QDF_STATUS
  */
 QDF_STATUS
-wlan_cm_roam_cmd_allowed(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
-			 uint8_t rso_command, uint8_t reason);
-#endif
+wlan_roam_update_cfg(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
+		     uint8_t reason);
 
+#ifndef FEATURE_CM_ENABLE
 /**
- * wlan_cm_roam_fill_start_req() - fill start request structure content
+ * wlan_cm_roam_cmd_allowed() - check roam cmd is allowed or not
  * @psoc: pointer to psoc object
  * @vdev_id: vdev id
- * @req: roam start config pointer
+ * @rso_command: roam scan offload command
  * @reason: reason to roam
  *
- * This function gets called to fill start request structure content
+ * This function gets called to check roam cmd is allowed or not
  *
  * Return: QDF_STATUS
  */
 QDF_STATUS
-wlan_cm_roam_fill_start_req(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
-			    struct wlan_roam_start_config *req, uint8_t reason);
+wlan_cm_roam_cmd_allowed(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
+			 uint8_t rso_command, uint8_t reason);
+#endif
 
 /**
  * wlan_cm_roam_scan_offload_rsp() - send roam scan offload response message
@@ -118,6 +148,30 @@ wlan_cm_roam_neighbor_proceed_with_handoff_req(uint8_t vdev_id);
 bool wlan_cm_is_sta_connected(uint8_t vdev_id);
 
 #else
+static inline
+QDF_STATUS wlan_cm_roam_send_rso_cmd(struct wlan_objmgr_psoc *psoc,
+				     uint8_t vdev_id, uint8_t rso_command,
+				     uint8_t reason)
+{
+	return QDF_STATUS_E_NOSUPPORT;
+}
+
+static inline QDF_STATUS
+wlan_roam_update_cfg(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
+		     uint8_t reason)
+{
+	return QDF_STATUS_E_NOSUPPORT;
+}
+
+static inline
+QDF_STATUS wlan_cm_roam_state_change(struct wlan_objmgr_pdev *pdev,
+				     uint8_t vdev_id,
+				     enum roam_offload_state requested_state,
+				     uint8_t reason)
+{
+	return QDF_STATUS_E_NOSUPPORT;
+}
+
 static inline QDF_STATUS
 wlan_cm_enable_roaming_on_connected_sta(struct wlan_objmgr_pdev *pdev,
 					uint8_t vdev_id)
@@ -230,39 +284,6 @@ QDF_STATUS wlan_cm_abort_rso(struct wlan_objmgr_pdev *pdev, uint8_t vdev_id);
 bool
 wlan_cm_roaming_in_progress(struct wlan_objmgr_pdev *pdev, uint8_t vdev_id);
 
-/**
- * wlan_cm_roam_state_change() - Post roam state change to roam state machine
- * @pdev: pdev pointer
- * @vdev_id: vdev id
- * @requested_state: roam state to be set
- * @reason: reason for changing roam state for the requested vdev id
- *
- * This function posts roam state change to roam state machine handling
- *
- * Return: QDF_STATUS
- */
-QDF_STATUS wlan_cm_roam_state_change(struct wlan_objmgr_pdev *pdev,
-				     uint8_t vdev_id,
-				     enum roam_offload_state requested_state,
-				     uint8_t reason);
-
-/**
- * wlan_cm_roam_send_rso_cmd() - send rso command
- * @psoc: psoc pointer
- * @vdev_id: vdev id
- * @rso_command: roam command to send
- * @reason: reason for changing roam state for the requested vdev id
- *
- * similar to csr_roam_offload_scan, will be used from many legacy
- * process directly, generate a new function wlan_cm_roam_send_rso_cmd
- * for external usage.
- *
- * Return: QDF_STATUS
- */
-QDF_STATUS wlan_cm_roam_send_rso_cmd(struct wlan_objmgr_psoc *psoc,
-				     uint8_t vdev_id, uint8_t rso_command,
-				     uint8_t reason);
-
 /**
  * wlan_cm_roam_stop_req() - roam stop request handling
  * @psoc: psoc pointer

+ 48 - 0
components/umac/mlme/connection_mgr/dispatcher/inc/wlan_cm_roam_public_struct.h

@@ -115,6 +115,52 @@
 #define ROAM_R0KH_ID_MAX_LEN  48
 #endif
 
+/*
+ * Neighbor Report Params Bitmask
+ */
+#define NEIGHBOR_REPORT_PARAMS_TIME_OFFSET            0x01
+#define NEIGHBOR_REPORT_PARAMS_LOW_RSSI_OFFSET        0x02
+#define NEIGHBOR_REPORT_PARAMS_BMISS_COUNT_TRIGGER    0x04
+#define NEIGHBOR_REPORT_PARAMS_PER_THRESHOLD_OFFSET   0x08
+#define NEIGHBOR_REPORT_PARAMS_CACHE_TIMEOUT          0x10
+#define NEIGHBOR_REPORT_PARAMS_MAX_REQ_CAP            0x20
+#define NEIGHBOR_REPORT_PARAMS_ALL                    0x3F
+
+/*
+ * Neighbor report offload needs to send 0xFFFFFFFF if a particular
+ * parameter is disabled from the ini
+ */
+#define NEIGHBOR_REPORT_PARAM_INVALID (0xFFFFFFFFU)
+
+/**
+ * struct cm_roam_neighbor_report_offload_params - neighbor report offload
+ *                                                 parameters
+ * @offload_11k_enable_bitmask: neighbor report offload bitmask control
+ * @params_bitmask: bitmask to specify which of the below are enabled
+ * @time_offset: time offset after 11k offload command to trigger a neighbor
+ *              report request (in seconds)
+ * @low_rssi_offset: Offset from rssi threshold to trigger neighbor
+ *      report request (in dBm)
+ * @bmiss_count_trigger: Number of beacon miss events to trigger neighbor
+ *              report request
+ * @per_threshold_offset: offset from PER threshold to trigger neighbor
+ *              report request (in %)
+ * @neighbor_report_cache_timeout: timeout after which new trigger can enable
+ *              sending of a neighbor report request (in seconds)
+ * @max_neighbor_report_req_cap: max number of neighbor report requests that
+ *              can be sent to the peer in the current session
+ */
+struct cm_roam_neighbor_report_offload_params {
+	uint32_t offload_11k_enable_bitmask;
+	uint8_t params_bitmask;
+	uint32_t time_offset;
+	uint32_t low_rssi_offset;
+	uint32_t bmiss_count_trigger;
+	uint32_t per_threshold_offset;
+	uint32_t neighbor_report_cache_timeout;
+	uint32_t max_neighbor_report_req_cap;
+};
+
 /**
  * struct rso_chan_info - chan info
  * @num_chan: number of channels
@@ -284,6 +330,7 @@ struct rso_roam_policy_params {
  * @max_raise_rssi_5g: Maximum amount of Boost that can added
  * @is_fils_roaming_supported: fils roaming supported
  * @policy_params: roam policy params
+ * @neighbor_report_offload: neighbor report offload params
  */
 struct rso_config_params {
 	uint8_t num_ssid_allowed_list;
@@ -302,6 +349,7 @@ struct rso_config_params {
 	uint8_t cat_rssi_offset;
 	bool is_fils_roaming_supported;
 	struct rso_roam_policy_params policy_params;
+	struct cm_roam_neighbor_report_offload_params neighbor_report_offload;
 };
 
 /**

+ 29 - 15
components/umac/mlme/connection_mgr/dispatcher/src/wlan_cm_roam_api.c

@@ -79,6 +79,35 @@ wlan_cm_enable_roaming_on_connected_sta(struct wlan_objmgr_pdev *pdev,
 				    WLAN_ROAM_RSO_ENABLED,
 				    REASON_CTX_INIT);
 }
+
+QDF_STATUS wlan_cm_roam_state_change(struct wlan_objmgr_pdev *pdev,
+				     uint8_t vdev_id,
+				     enum roam_offload_state requested_state,
+				     uint8_t reason)
+{
+	return cm_roam_state_change(pdev, vdev_id, requested_state, reason);
+}
+
+QDF_STATUS wlan_cm_roam_send_rso_cmd(struct wlan_objmgr_psoc *psoc,
+				     uint8_t vdev_id, uint8_t rso_command,
+				     uint8_t reason)
+{
+	return cm_roam_send_rso_cmd(psoc, vdev_id, rso_command, reason);
+}
+
+QDF_STATUS
+wlan_roam_update_cfg(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
+		     uint8_t reason)
+{
+	if (!MLME_IS_ROAM_STATE_RSO_ENABLED(psoc, vdev_id)) {
+		mlme_debug("Update cfg received while ROAM RSO not started");
+		return QDF_STATUS_E_INVAL;
+	}
+
+	return cm_roam_send_rso_cmd(psoc, vdev_id, ROAM_SCAN_OFFLOAD_UPDATE_CFG,
+				    reason);
+}
+
 #endif
 
 char *cm_roam_get_requestor_string(enum wlan_cm_rso_control_requestor requestor)
@@ -238,21 +267,6 @@ bool wlan_cm_roaming_in_progress(struct wlan_objmgr_pdev *pdev, uint8_t vdev_id)
 	return false;
 }
 
-QDF_STATUS wlan_cm_roam_state_change(struct wlan_objmgr_pdev *pdev,
-				     uint8_t vdev_id,
-				     enum roam_offload_state requested_state,
-				     uint8_t reason)
-{
-	return cm_roam_state_change(pdev, vdev_id, requested_state, reason);
-}
-
-QDF_STATUS wlan_cm_roam_send_rso_cmd(struct wlan_objmgr_psoc *psoc,
-				     uint8_t vdev_id, uint8_t rso_command,
-				     uint8_t reason)
-{
-	return cm_roam_send_rso_cmd(psoc, vdev_id, rso_command, reason);
-}
-
 QDF_STATUS wlan_cm_roam_stop_req(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
 				 uint8_t reason)
 {

+ 0 - 28
core/sme/inc/csr_api.h

@@ -751,32 +751,6 @@ typedef struct tagCsrRoamConnectedProfile {
 #endif
 } tCsrRoamConnectedProfile;
 
-/**
- * struct csr_neighbor_report_offload_params - neighbor report offload params
- * @params_bitmask: bitmask to specify which of the below are enabled
- * @time_offset: time offset after 11k offload command to trigger a neighbor
- *		report request (in seconds)
- * @low_rssi_offset: Offset from rssi threshold to trigger neighbor
- *	report request (in dBm)
- * @bmiss_count_trigger: Number of beacon miss events to trigger neighbor
- *		report request
- * @per_threshold_offset: offset from PER threshold to trigger neighbor
- *		report request (in %)
- * @neighbor_report_cache_timeout: timeout after which new trigger can enable
- *		sending of a neighbor report request (in seconds)
- * @max_neighbor_report_req_cap: max number of neighbor report requests that
- *		can be sent to the peer in the current session
- */
-struct csr_neighbor_report_offload_params {
-	uint8_t params_bitmask;
-	uint32_t time_offset;
-	uint32_t low_rssi_offset;
-	uint32_t bmiss_count_trigger;
-	uint32_t per_threshold_offset;
-	uint32_t neighbor_report_cache_timeout;
-	uint32_t max_neighbor_report_req_cap;
-};
-
 struct csr_config_params {
 	/* keep this uint32_t. This gets converted to ePhyChannelBondState */
 	uint32_t channelBondingMode24GHz;
@@ -820,9 +794,7 @@ struct csr_config_params {
 	bool sap_channel_avoidance;
 #endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
 	enum force_1x1_type is_force_1x1;
-	uint32_t offload_11k_enable_bitmask;
 	bool wep_tkip_in_he;
-	struct csr_neighbor_report_offload_params neighbor_report_offload;
 };
 
 #ifdef WLAN_FEATURE_ROAM_OFFLOAD

+ 0 - 13
core/sme/inc/csr_internal.h

@@ -322,17 +322,6 @@ struct delstafor_sessionCmd {
 	void *context;
 };
 
-/*
- * Neighbor Report Params Bitmask
- */
-#define NEIGHBOR_REPORT_PARAMS_TIME_OFFSET            0x01
-#define NEIGHBOR_REPORT_PARAMS_LOW_RSSI_OFFSET        0x02
-#define NEIGHBOR_REPORT_PARAMS_BMISS_COUNT_TRIGGER    0x04
-#define NEIGHBOR_REPORT_PARAMS_PER_THRESHOLD_OFFSET   0x08
-#define NEIGHBOR_REPORT_PARAMS_CACHE_TIMEOUT          0x10
-#define NEIGHBOR_REPORT_PARAMS_MAX_REQ_CAP            0x20
-#define NEIGHBOR_REPORT_PARAMS_ALL                    0x3F
-
 struct csr_config {
 	uint32_t channelBondingMode24GHz;
 	uint32_t channelBondingMode5GHz;
@@ -358,9 +347,7 @@ struct csr_config {
 	uint8_t conc_custom_rule2;
 	uint8_t is_sta_connection_in_5gz_enabled;
 	enum force_1x1_type is_force_1x1;
-	uint32_t offload_11k_enable_bitmask;
 	bool wep_tkip_in_he;
-	struct csr_neighbor_report_offload_params neighbor_report_offload;
 };
 
 struct csr_channel_powerinfo {

+ 0 - 65
core/sme/inc/csr_neighbor_roam.h

@@ -154,71 +154,6 @@ QDF_STATUS csr_neighbor_roam_merge_channel_lists(struct mac_context *mac,
 		uint8_t outputNumOfChannels,
 		uint8_t *pMergedOutputNumOfChannels);
 
-#if defined(WLAN_FEATURE_HOST_ROAM) || defined(WLAN_FEATURE_ROAM_OFFLOAD)
-QDF_STATUS csr_roam_offload_scan(struct mac_context *mac, uint8_t sessionId,
-		uint8_t command, uint8_t reason);
-
-/**
- * csr_post_roam_state_change() - Post roam state change to roam state machine
- * @mac: mac context
- * @vdev_id: vdev id
- * @state: roam state to be set for the requested vdev id
- * @reason: reason for changing roam state for the requested vdev id
- *
- * Return: QDF_STATUS
- */
-QDF_STATUS csr_post_roam_state_change(struct mac_context *mac, uint8_t vdev_id,
-				      enum roam_offload_state state,
-				      uint8_t reason);
-
-/**
- * csr_roam_update_cfg() - Process RSO update cfg request
- * @mac: mac context
- * @vdev_id: vdev id
- * @reason: reason for requesting RSO update cfg
- *
- * Return: QDF_STATUS
- */
-QDF_STATUS
-csr_roam_update_cfg(struct mac_context *mac, uint8_t vdev_id, uint8_t reason);
-#else
-static inline QDF_STATUS csr_roam_offload_scan(struct mac_context *mac,
-		uint8_t sessionId, uint8_t command, uint8_t reason)
-{
-	return QDF_STATUS_E_NOSUPPORT;
-}
-
-static inline
-QDF_STATUS csr_post_roam_state_change(struct mac_context *mac, uint8_t vdev_id,
-				      enum roam_offload_state state,
-				      uint8_t reason)
-{
-	return QDF_STATUS_E_NOSUPPORT;
-}
-
-static inline QDF_STATUS
-csr_roam_update_cfg(struct mac_context *mac, uint8_t vdev_id, uint8_t reason)
-{
-	return QDF_STATUS_E_NOSUPPORT;
-}
-#endif
-
-/**
- * csr_get_roam_enabled_sta_sessionid() - get the session id of the sta on which
- * roaming is enabled.
- * @mac_ctx:  pointer to global mac structure
- * @vdev_id: vdev id of the requestor
- *
- * The function checks if any sta(other than the provided vdev_id) is present
- * and has roaming enabled and return the session id of the sta with roaming
- * enabled else if roaming is not enabled on any STA return
- * WLAN_UMAC_VDEV_ID_MAX.
- *
- * Return: session id of STA on which roaming is enabled
- */
-uint8_t csr_get_roam_enabled_sta_sessionid(struct mac_context *mac_ctx,
-					   uint8_t vdev_id);
-
 #ifndef FEATURE_CM_ENABLE
 #if defined(WLAN_FEATURE_FILS_SK)
 /**

+ 15 - 54
core/sme/src/common/sme_api.c

@@ -906,8 +906,8 @@ void sme_update_fine_time_measurement_capab(mac_handle_t mac_handle,
 	/* Inform this RRM IE change to FW */
 	status = sme_acquire_global_lock(&mac_ctx->sme);
 	if (QDF_IS_STATUS_SUCCESS(status)) {
-		csr_roam_update_cfg(mac_ctx, session_id,
-				    REASON_CONNECT_IES_CHANGED);
+		wlan_roam_update_cfg(mac_ctx->psoc, session_id,
+				     REASON_CONNECT_IES_CHANGED);
 		sme_release_global_lock(&mac_ctx->sme);
 	}
 }
@@ -919,44 +919,6 @@ void sme_update_nud_config(mac_handle_t mac_handle, uint8_t nud_fail_behavior)
 	mac->nud_fail_behaviour = nud_fail_behavior;
 }
 
-/**
- * sme_update_neighbor_report_config() - Update CSR config for 11k params
- * @mac_handle: Pointer to MAC context
- * @csr_config: Pointer to CSR config data structure
- *
- * Return: None
- */
-static void
-sme_update_neighbor_report_config(struct mac_context *mac,
-				  struct csr_config_params *csr_config)
-{
-	struct wlan_fwol_neighbor_report_cfg fwol_neighbor_report_cfg = {0};
-	QDF_STATUS status;
-
-	status = ucfg_fwol_get_neighbor_report_cfg(mac->psoc,
-						   &fwol_neighbor_report_cfg);
-	if (!QDF_IS_STATUS_SUCCESS(status))
-		sme_err("Using defaults for 11K offload params: Error: %d",
-			status);
-
-	csr_config->offload_11k_enable_bitmask =
-				fwol_neighbor_report_cfg.enable_bitmask;
-	csr_config->neighbor_report_offload.params_bitmask =
-				fwol_neighbor_report_cfg.params_bitmask;
-	csr_config->neighbor_report_offload.time_offset =
-				fwol_neighbor_report_cfg.time_offset;
-	csr_config->neighbor_report_offload.low_rssi_offset =
-				fwol_neighbor_report_cfg.low_rssi_offset;
-	csr_config->neighbor_report_offload.bmiss_count_trigger =
-				fwol_neighbor_report_cfg.bmiss_count_trigger;
-	csr_config->neighbor_report_offload.per_threshold_offset =
-				fwol_neighbor_report_cfg.per_threshold_offset;
-	csr_config->neighbor_report_offload.neighbor_report_cache_timeout =
-				fwol_neighbor_report_cfg.cache_timeout;
-	csr_config->neighbor_report_offload.max_neighbor_report_req_cap =
-				fwol_neighbor_report_cfg.max_req_cap;
-}
-
 /*
  * sme_update_config() - Change configurations for all SME moduels
  * The function updates some configuration for modules in SME, CSR, etc
@@ -983,10 +945,9 @@ QDF_STATUS sme_update_config(mac_handle_t mac_handle,
 		sme_err("SME config params empty");
 		return status;
 	}
-	sme_update_neighbor_report_config(mac, &pSmeConfigParams->csr_config);
+
 	status = csr_change_default_config_param(mac, &pSmeConfigParams->
 						csr_config);
-
 	if (!QDF_IS_STATUS_SUCCESS(status))
 		sme_err("csr_change_default_config_param failed status: %d",
 			status);
@@ -1068,7 +1029,7 @@ QDF_STATUS sme_update_roam_params(mac_handle_t mac_handle,
 
 	status = sme_acquire_global_lock(&mac_ctx->sme);
 	if (QDF_IS_STATUS_SUCCESS(status)) {
-		csr_roam_update_cfg(mac_ctx, vdev_id, update_param);
+		wlan_roam_update_cfg(mac_ctx->psoc, vdev_id, update_param);
 		sme_release_global_lock(&mac_ctx->sme);
 	}
 
@@ -1504,7 +1465,7 @@ QDF_STATUS sme_update_is_ese_feature_enabled(mac_handle_t mac_handle,
 	if (mac->mlme_cfg->lfr.roam_scan_offload_enabled) {
 		status = sme_acquire_global_lock(&mac->sme);
 		if (QDF_IS_STATUS_SUCCESS(status)) {
-			csr_roam_update_cfg(mac, sessionId,
+			wlan_roam_update_cfg(mac->psoc, sessionId,
 					    REASON_ESE_INI_CFG_CHANGED);
 			sme_release_global_lock(&mac->sme);
 		} else {
@@ -1876,7 +1837,7 @@ QDF_STATUS sme_set_ese_roam_scan_channel_list(mac_handle_t mac_handle,
 	wlan_objmgr_vdev_release_ref(vdev, WLAN_LEGACY_SME_ID);
 
 	if (mac->mlme_cfg->lfr.roam_scan_offload_enabled)
-		csr_roam_update_cfg(mac, sessionId,
+		wlan_roam_update_cfg(mac->psoc, sessionId,
 				    REASON_CHANNEL_LIST_CHANGED);
 
 	sme_release_global_lock(&mac->sme);
@@ -6096,7 +6057,7 @@ QDF_STATUS sme_send_rso_connect_params(mac_handle_t mac_handle,
 		status = sme_acquire_global_lock(&mac->sme);
 		if (QDF_IS_STATUS_SUCCESS(status)) {
 			sme_debug("Updating fils config to fw");
-			csr_roam_update_cfg(mac, vdev_id,
+			wlan_roam_update_cfg(mac->psoc, vdev_id,
 					    REASON_FILS_PARAMS_CHANGED);
 			sme_release_global_lock(&mac->sme);
 		} else {
@@ -6322,10 +6283,10 @@ QDF_STATUS sme_set_roam_scan_control(mac_handle_t mac_handle, uint8_t sessionId,
 		 *  and then append channel list with dynamic channels in the FW
 		 *  using REASON_CHANNEL_LIST_CHANGED.
 		 */
-			csr_roam_update_cfg(mac, sessionId,
+			wlan_roam_update_cfg(mac->psoc, sessionId,
 					    REASON_FLUSH_CHANNEL_LIST);
 
-			csr_roam_update_cfg(mac, sessionId,
+			wlan_roam_update_cfg(mac->psoc, sessionId,
 					    REASON_CHANNEL_LIST_CHANGED);
 		}
 	}
@@ -6426,7 +6387,7 @@ int sme_add_key_btk(mac_handle_t mac_handle, uint8_t session_id,
 	 * KRK and BTK are updated by upper layer back to back. Send
 	 * updated KRK and BTK together to FW here.
 	 */
-	csr_roam_update_cfg(mac_ctx, session_id, REASON_ROAM_PSK_PMK_CHANGED);
+	wlan_roam_update_cfg(mac_ctx->psoc, session_id, REASON_ROAM_PSK_PMK_CHANGED);
 
 	return 0;
 }
@@ -6915,8 +6876,8 @@ QDF_STATUS sme_roam_control_restore_default_config(mac_handle_t mac_handle,
 	sme_restore_default_roaming_params(mac, vdev_id);
 
 	/* Flush static and dynamic channels in ROAM scan list in firmware */
-	csr_roam_update_cfg(mac, vdev_id, REASON_FLUSH_CHANNEL_LIST);
-	csr_roam_update_cfg(mac, vdev_id, REASON_SCORING_CRITERIA_CHANGED);
+	wlan_roam_update_cfg(mac->psoc, vdev_id, REASON_FLUSH_CHANNEL_LIST);
+	wlan_roam_update_cfg(mac->psoc, vdev_id, REASON_SCORING_CRITERIA_CHANGED);
 
 out:
 	sme_release_global_lock(&mac->sme);
@@ -9200,7 +9161,7 @@ QDF_STATUS sme_update_dfs_scan_mode(mac_handle_t mac_handle, uint8_t sessionId,
 		mac->mlme_cfg->lfr.roaming_dfs_channel =
 			allowDFSChannelRoam;
 		if (mac->mlme_cfg->lfr.roam_scan_offload_enabled)
-			csr_roam_update_cfg(mac, sessionId,
+			wlan_roam_update_cfg(mac->psoc, sessionId,
 					    REASON_ROAM_DFS_SCAN_MODE_CHANGED);
 
 		sme_release_global_lock(&mac->sme);
@@ -13065,7 +13026,7 @@ QDF_STATUS sme_update_sta_roam_policy(mac_handle_t mac_handle,
 	if (mac_ctx->mlme_cfg->lfr.roam_scan_offload_enabled) {
 		status = sme_acquire_global_lock(&mac_ctx->sme);
 		if (QDF_IS_STATUS_SUCCESS(status)) {
-			csr_roam_update_cfg(mac_ctx, vdev_id,
+			wlan_roam_update_cfg(mac_ctx->psoc, vdev_id,
 				      REASON_ROAM_SCAN_STA_ROAM_POLICY_CHANGED);
 			sme_release_global_lock(&mac_ctx->sme);
 		}
@@ -15923,7 +15884,7 @@ sme_send_vendor_btm_params(mac_handle_t mac_handle, uint8_t vdev_id)
 	status = sme_acquire_global_lock(&mac->sme);
 	if (QDF_IS_STATUS_SUCCESS(status)) {
 		if (mac->mlme_cfg->lfr.roam_scan_offload_enabled)
-			csr_roam_update_cfg(mac, vdev_id,
+			wlan_roam_update_cfg(mac->psoc, vdev_id,
 					    REASON_ROAM_CONTROL_CONFIG_CHANGED);
 		sme_release_global_lock(&mac->sme);
 	}

+ 12 - 291
core/sme/src/csr/csr_api_roam.c

@@ -114,12 +114,6 @@
 #define ROAMING_OFFLOAD_TIMER_STOP	2
 #define CSR_ROAMING_OFFLOAD_TIMEOUT_PERIOD    (5 * QDF_MC_TIMER_TO_SEC_UNIT)
 
-/*
- * Neighbor report offload needs to send 0xFFFFFFFF if a particular
- * parameter is disabled from the ini
- */
-#define NEIGHBOR_REPORT_PARAM_INVALID (0xFFFFFFFFU)
-
 /*
  * To get 4 LSB of roam reason of roam_synch_data
  * received from firmware
@@ -2221,40 +2215,6 @@ void csr_update_session_he_cap(struct mac_context *mac_ctx,
 }
 #endif
 
-/**
- * csr_set_11k_offload_config_param() - Update 11k neighbor report config
- *
- * @csr_config: pointer to csr_config in MAC context
- * @pParam: pointer to config params from HDD
- *
- * Return: none
- */
-static
-void csr_set_11k_offload_config_param(struct csr_config *csr_config,
-					struct csr_config_params *param)
-{
-	csr_config->offload_11k_enable_bitmask =
-		param->offload_11k_enable_bitmask;
-	csr_config->neighbor_report_offload.params_bitmask =
-		param->neighbor_report_offload.params_bitmask;
-	csr_config->neighbor_report_offload.time_offset =
-		param->neighbor_report_offload.time_offset;
-	csr_config->neighbor_report_offload.low_rssi_offset =
-		param->neighbor_report_offload.low_rssi_offset;
-	csr_config->neighbor_report_offload.bmiss_count_trigger =
-		param->neighbor_report_offload.bmiss_count_trigger;
-	csr_config->neighbor_report_offload.per_threshold_offset =
-		param->neighbor_report_offload.per_threshold_offset;
-	csr_config->neighbor_report_offload.
-		neighbor_report_cache_timeout =
-		param->neighbor_report_offload.
-		neighbor_report_cache_timeout;
-	csr_config->neighbor_report_offload.
-		max_neighbor_report_req_cap =
-		param->neighbor_report_offload.
-		max_neighbor_report_req_cap;
-}
-
 QDF_STATUS csr_change_default_config_param(struct mac_context *mac,
 					   struct csr_config_params *pParam)
 {
@@ -2350,44 +2310,10 @@ QDF_STATUS csr_change_default_config_param(struct mac_context *mac,
 		mac->sap.sap_channel_avoidance =
 			pParam->sap_channel_avoidance;
 #endif /* FEATURE_AP_MCC_CH_AVOIDANCE */
-		csr_set_11k_offload_config_param(&mac->roam.configParam,
-						 pParam);
 	}
 	return status;
 }
 
-/**
- * csr_get_11k_offload_config_param() - Get 11k neighbor report config
- *
- * @csr_config: pointer to csr_config in MAC context
- * @pParam: pointer to config params from HDD
- *
- * Return: none
- */
-static
-void csr_get_11k_offload_config_param(struct csr_config *csr_config,
-					struct csr_config_params *param)
-{
-	param->offload_11k_enable_bitmask =
-		csr_config->offload_11k_enable_bitmask;
-	param->neighbor_report_offload.params_bitmask =
-		csr_config->neighbor_report_offload.params_bitmask;
-	param->neighbor_report_offload.time_offset =
-		csr_config->neighbor_report_offload.time_offset;
-	param->neighbor_report_offload.low_rssi_offset =
-		csr_config->neighbor_report_offload.low_rssi_offset;
-	param->neighbor_report_offload.bmiss_count_trigger =
-		csr_config->neighbor_report_offload.bmiss_count_trigger;
-	param->neighbor_report_offload.per_threshold_offset =
-		csr_config->neighbor_report_offload.per_threshold_offset;
-	param->neighbor_report_offload.neighbor_report_cache_timeout =
-		csr_config->neighbor_report_offload.
-		neighbor_report_cache_timeout;
-	param->neighbor_report_offload.max_neighbor_report_req_cap =
-		csr_config->neighbor_report_offload.
-		max_neighbor_report_req_cap;
-}
-
 QDF_STATUS csr_get_config_param(struct mac_context *mac,
 				struct csr_config_params *pParam)
 {
@@ -2428,8 +2354,6 @@ QDF_STATUS csr_get_config_param(struct mac_context *mac,
 		mac->f_sta_miracast_mcc_rest_time_val;
 	pParam->send_smps_action = mac->roam.configParam.send_smps_action;
 
-	csr_get_11k_offload_config_param(&mac->roam.configParam, pParam);
-
 	return QDF_STATUS_SUCCESS;
 }
 
@@ -6948,8 +6872,9 @@ static void csr_roam_process_join_res(struct mac_context *mac_ctx,
 	}
 
 	if (csr_roam_is_sta_mode(mac_ctx, session_id))
-		csr_post_roam_state_change(mac_ctx, session_id, WLAN_ROAM_INIT,
-					   REASON_CONNECT);
+		wlan_cm_roam_state_change(mac_ctx->pdev, session_id,
+					  WLAN_ROAM_INIT,
+					  REASON_CONNECT);
 
 	/* Not to signal link up because keys are yet to be set.
 	 * The linkup function will overwrite the sub-state that
@@ -13493,7 +13418,8 @@ QDF_STATUS csr_roam_set_psk_pmk(struct mac_context *mac, uint8_t vdev_id,
 	}
 
 	if (update_to_fw)
-		csr_roam_update_cfg(mac, vdev_id, REASON_ROAM_PSK_PMK_CHANGED);
+		wlan_roam_update_cfg(mac->psoc, vdev_id,
+				     REASON_ROAM_PSK_PMK_CHANGED);
 
 	return QDF_STATUS_SUCCESS;
 }
@@ -16197,104 +16123,6 @@ csr_roam_pmkid_req_callback(uint8_t vdev_id,
 #endif /* WLAN_FEATURE_ROAM_OFFLOAD */
 
 #if defined(WLAN_FEATURE_HOST_ROAM) || defined(WLAN_FEATURE_ROAM_OFFLOAD)
-/**
- * csr_update_11k_offload_params - Update 11K offload params
- * @mac_ctx: MAC context
- * @session: Pointer to the CSR Roam Session
- * @params: Pointer to the roam 11k offload params
- * @enabled: 11k offload enabled/disabled.
- *
- * API to update 11k offload params
- *
- * Return: none
- */
-static void
-csr_update_11k_offload_params(struct mac_context *mac_ctx,
-			      struct csr_roam_session *session,
-			      struct wlan_roam_11k_offload_params *params,
-			      bool enabled)
-{
-	struct csr_config *csr_config = &mac_ctx->roam.configParam;
-	struct csr_neighbor_report_offload_params *neighbor_report_offload =
-		&csr_config->neighbor_report_offload;
-
-	params->vdev_id = session->sessionId;
-
-	if (enabled) {
-		params->offload_11k_bitmask =
-				csr_config->offload_11k_enable_bitmask;
-	} else {
-		params->offload_11k_bitmask = 0;
-		return;
-	}
-
-	/*
-	 * If none of the parameters are enabled, then set the
-	 * offload_11k_bitmask to 0, so that we don't send the command
-	 * to the FW and drop it in WMA
-	 */
-	if ((neighbor_report_offload->params_bitmask &
-	    NEIGHBOR_REPORT_PARAMS_ALL) == 0) {
-		sme_err("No valid neighbor report offload params %x",
-			neighbor_report_offload->params_bitmask);
-		params->offload_11k_bitmask = 0;
-		return;
-	}
-
-	/*
-	 * First initialize all params to NEIGHBOR_REPORT_PARAM_INVALID
-	 * Then set the values that are enabled
-	 */
-	params->neighbor_report_params.time_offset =
-		NEIGHBOR_REPORT_PARAM_INVALID;
-	params->neighbor_report_params.low_rssi_offset =
-		NEIGHBOR_REPORT_PARAM_INVALID;
-	params->neighbor_report_params.bmiss_count_trigger =
-		NEIGHBOR_REPORT_PARAM_INVALID;
-	params->neighbor_report_params.per_threshold_offset =
-		NEIGHBOR_REPORT_PARAM_INVALID;
-	params->neighbor_report_params.neighbor_report_cache_timeout =
-		NEIGHBOR_REPORT_PARAM_INVALID;
-	params->neighbor_report_params.max_neighbor_report_req_cap =
-		NEIGHBOR_REPORT_PARAM_INVALID;
-
-	if (neighbor_report_offload->params_bitmask &
-	    NEIGHBOR_REPORT_PARAMS_TIME_OFFSET)
-		params->neighbor_report_params.time_offset =
-			neighbor_report_offload->time_offset;
-
-	if (neighbor_report_offload->params_bitmask &
-	    NEIGHBOR_REPORT_PARAMS_LOW_RSSI_OFFSET)
-		params->neighbor_report_params.low_rssi_offset =
-			neighbor_report_offload->low_rssi_offset;
-
-	if (neighbor_report_offload->params_bitmask &
-	    NEIGHBOR_REPORT_PARAMS_BMISS_COUNT_TRIGGER)
-		params->neighbor_report_params.bmiss_count_trigger =
-			neighbor_report_offload->bmiss_count_trigger;
-
-	if (neighbor_report_offload->params_bitmask &
-	    NEIGHBOR_REPORT_PARAMS_PER_THRESHOLD_OFFSET)
-		params->neighbor_report_params.per_threshold_offset =
-			neighbor_report_offload->per_threshold_offset;
-
-	if (neighbor_report_offload->params_bitmask &
-	    NEIGHBOR_REPORT_PARAMS_CACHE_TIMEOUT)
-		params->neighbor_report_params.neighbor_report_cache_timeout =
-			neighbor_report_offload->neighbor_report_cache_timeout;
-
-	if (neighbor_report_offload->params_bitmask &
-	    NEIGHBOR_REPORT_PARAMS_MAX_REQ_CAP)
-		params->neighbor_report_params.max_neighbor_report_req_cap =
-			neighbor_report_offload->max_neighbor_report_req_cap;
-
-	params->neighbor_report_params.ssid.length =
-		session->connectedProfile.SSID.length;
-	qdf_mem_copy(params->neighbor_report_params.ssid.ssid,
-			session->connectedProfile.SSID.ssId,
-			session->connectedProfile.SSID.length);
-}
-
 QDF_STATUS csr_invoke_neighbor_report_request(
 				uint8_t session_id,
 				struct sRrmNeighborReq *neighbor_report_req,
@@ -16427,48 +16255,6 @@ QDF_STATUS csr_update_fils_config(struct mac_context *mac, uint8_t session_id,
 	return QDF_STATUS_SUCCESS;
 }
 #endif
-#endif
-
-uint8_t
-csr_get_roam_enabled_sta_sessionid(struct mac_context *mac_ctx, uint8_t vdev_id)
-{
-	struct csr_roam_session *session;
-	uint8_t i;
-
-	for (i = 0; i < WLAN_MAX_VDEVS; i++) {
-		session = CSR_GET_SESSION(mac_ctx, i);
-		if (!session || !CSR_IS_SESSION_VALID(mac_ctx, i))
-			continue;
-		if (wlan_get_opmode_from_vdev_id(mac_ctx->pdev, vdev_id) !=
-		    QDF_STA_MODE)
-			continue;
-
-		if (vdev_id == i)
-			continue;
-
-		if (MLME_IS_ROAM_INITIALIZED(mac_ctx->psoc, i))
-			return i;
-	}
-
-	return WLAN_UMAC_VDEV_ID_MAX;
-}
-
-QDF_STATUS
-csr_post_roam_state_change(struct mac_context *mac, uint8_t vdev_id,
-			   enum roam_offload_state state, uint8_t reason)
-{
-	return wlan_cm_roam_state_change(mac->pdev, vdev_id, state, reason);
-}
-
-QDF_STATUS
-csr_roam_offload_scan(struct mac_context *mac_ctx, uint8_t session_id,
-		      uint8_t command, uint8_t reason)
-{
-	return wlan_cm_roam_send_rso_cmd(mac_ctx->psoc, session_id, command,
-					 reason);
-}
-
-#ifndef FEATURE_CM_ENABLE
 
 #ifdef WLAN_ADAPTIVE_11R
 static bool
@@ -16651,58 +16437,6 @@ wlan_cm_roam_cmd_allowed(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
 	return QDF_STATUS_SUCCESS;
 }
 #endif
-/**
- * csr_cm_roam_offload_11k_params() - set roam 11k offload parameters
- * @mac_ctx: global mac ctx
- * @session: sme session
- * @params:  roam 11k offload parameters
- * @enabled: 11k offload enabled/disabled
- *
- * This function is used to set roam 11k offload related parameters
- *
- * Return: None
- */
-static void
-csr_cm_roam_offload_11k_params(struct mac_context *mac_ctx,
-			       struct csr_roam_session *session,
-			       struct wlan_roam_11k_offload_params *params,
-			       bool enabled)
-{
-	csr_update_11k_offload_params(mac_ctx, session, params, enabled);
-}
-
-/*
- * Below wlan_cm_roam_* and all csr_cm_roam_* APIs will move to component once
- * conenction manager is converged.
- */
-
-QDF_STATUS
-wlan_cm_roam_fill_start_req(struct wlan_objmgr_psoc *psoc, uint8_t vdev_id,
-			    struct wlan_roam_start_config *req, uint8_t reason)
-{
-	struct csr_roam_session *session;
-	struct mac_context *mac_ctx;
-
-	mac_ctx = sme_get_mac_context();
-	if (!mac_ctx) {
-		sme_err("mac_ctx is NULL");
-		return QDF_STATUS_E_FAILURE;
-	}
-
-	session = CSR_GET_SESSION(mac_ctx, vdev_id);
-	if (!session) {
-		sme_err("session is null %d", vdev_id);
-		return QDF_STATUS_E_FAILURE;
-	}
-
-	/* 11k offload is enabled during RSO Start after connect indication */
-	csr_cm_roam_offload_11k_params(mac_ctx, session,
-				       &req->roam_11k_params, TRUE);
-	/* fill other struct similar to wlan_roam_offload_scan_rssi_params */
-
-	return QDF_STATUS_SUCCESS;
-}
-
 QDF_STATUS
 wlan_cm_roam_scan_offload_rsp(uint8_t vdev_id, uint8_t reason)
 {
@@ -18617,7 +18351,7 @@ csr_process_roam_sync_callback(struct mac_context *mac_ctx,
 			goto end;
 		}
 #endif
-		status = csr_post_roam_state_change(mac_ctx, session_id,
+		status = wlan_cm_roam_state_change(mac_ctx->pdev, session_id,
 						    WLAN_ROAM_SYNCH_IN_PROG,
 						    REASON_ROAM_HANDOFF_DONE);
 		if (QDF_IS_STATUS_ERROR(status))
@@ -18627,8 +18361,7 @@ csr_process_roam_sync_callback(struct mac_context *mac_ctx,
 				eCSR_ROAM_FT_START, eCSR_ROAM_RESULT_SUCCESS);
 		goto end;
 	case SIR_ROAMING_START:
-		status = csr_post_roam_state_change(
-					mac_ctx, session_id,
+		status = wlan_cm_roam_state_change(mac_ctx->pdev, session_id,
 					WLAN_ROAMING_IN_PROG,
 					REASON_ROAM_CANDIDATE_FOUND);
 		if (QDF_IS_STATUS_ERROR(status))
@@ -18673,7 +18406,7 @@ csr_process_roam_sync_callback(struct mac_context *mac_ctx,
 		 * Connection to the previous AP is still valid in this
 		 * case. So move to RSO_ENABLED state.
 		 */
-		csr_post_roam_state_change(mac_ctx, session_id,
+		wlan_cm_roam_state_change(mac_ctx->pdev, session_id,
 					   WLAN_ROAM_RSO_ENABLED,
 					   REASON_ROAM_ABORT);
 		csr_roam_roaming_offload_timer_action(mac_ctx,
@@ -18778,7 +18511,7 @@ csr_process_roam_sync_callback(struct mac_context *mac_ctx,
 
 		if (roam_synch_data->authStatus ==
 		    CSR_ROAM_AUTH_STATUS_AUTHENTICATED) {
-			csr_post_roam_state_change(mac_ctx, session_id,
+			wlan_cm_roam_state_change(mac_ctx->pdev, session_id,
 						   WLAN_ROAM_RSO_ENABLED,
 						   REASON_CONNECT);
 		} else {
@@ -18788,9 +18521,9 @@ csr_process_roam_sync_callback(struct mac_context *mac_ctx,
 			 * user-space and after set key response
 			 * is received.
 			 */
-			csr_post_roam_state_change(mac_ctx, session_id,
-						   WLAN_ROAM_INIT,
-						   REASON_CONNECT);
+			wlan_cm_roam_state_change(mac_ctx->pdev, session_id,
+						  WLAN_ROAM_INIT,
+						  REASON_CONNECT);
 		}
 		goto end;
 	case SIR_ROAMING_DEAUTH:
@@ -19310,15 +19043,3 @@ QDF_STATUS csr_update_owe_info(struct mac_context *mac,
 
 	return status;
 }
-
-QDF_STATUS
-csr_roam_update_cfg(struct mac_context *mac, uint8_t vdev_id, uint8_t reason)
-{
-	if (!MLME_IS_ROAM_STATE_RSO_ENABLED(mac->psoc, vdev_id)) {
-		sme_debug("Update cfg received while ROAM RSO not started");
-		return QDF_STATUS_E_INVAL;
-	}
-
-	return csr_roam_offload_scan(mac, vdev_id, ROAM_SCAN_OFFLOAD_UPDATE_CFG,
-				     reason);
-}

+ 2 - 2
core/sme/src/csr/csr_host_scan_roam.c

@@ -401,7 +401,7 @@ QDF_STATUS csr_neighbor_roam_process_scan_complete(struct mac_context *mac,
 
 	if (csr_roam_is_roam_offload_scan_enabled(mac)) {
 		if (pNeighborRoamInfo->uOsRequestedHandoff) {
-			csr_roam_offload_scan(mac, sessionId,
+			wlan_cm_roam_send_rso_cmd(mac->psoc, sessionId,
 				ROAM_SCAN_OFFLOAD_START,
 				REASON_NO_CAND_FOUND_OR_NOT_ROAMING_NOW);
 			pNeighborRoamInfo->uOsRequestedHandoff = 0;
@@ -409,7 +409,7 @@ QDF_STATUS csr_neighbor_roam_process_scan_complete(struct mac_context *mac,
 			/* There is no candidate or We are not roaming Now.
 			 * Inform the FW to restart Roam Offload Scan
 			 */
-			csr_roam_offload_scan(mac, sessionId,
+			wlan_cm_roam_send_rso_cmd(mac->psoc, sessionId,
 				ROAM_SCAN_OFFLOAD_RESTART,
 				REASON_NO_CAND_FOUND_OR_NOT_ROAMING_NOW);
 		}

+ 18 - 17
core/sme/src/csr/csr_neighbor_roam.c

@@ -136,13 +136,13 @@ QDF_STATUS csr_neighbor_roam_update_fast_roaming_enabled(struct mac_context *mac
 		mlme_set_supplicant_disabled_roaming(mac_ctx->psoc, session_id,
 						     !fast_roam_enabled);
 		if (fast_roam_enabled) {
-			csr_post_roam_state_change(mac_ctx, session_id,
-						   WLAN_ROAM_RSO_ENABLED,
-						   REASON_CONNECT);
+			wlan_cm_roam_state_change(mac_ctx->pdev, session_id,
+						  WLAN_ROAM_RSO_ENABLED,
+						  REASON_CONNECT);
 		} else {
-			csr_post_roam_state_change(mac_ctx, session_id,
-					    WLAN_ROAM_RSO_STOPPED,
-					    REASON_SUPPLICANT_DISABLED_ROAMING);
+			wlan_cm_roam_state_change(mac_ctx->pdev, session_id,
+					WLAN_ROAM_RSO_STOPPED,
+					REASON_SUPPLICANT_DISABLED_ROAMING);
 		}
 		sme_release_global_lock(&mac_ctx->sme);
 		break;
@@ -230,7 +230,7 @@ QDF_STATUS csr_neighbor_roam_update_config(struct mac_context *mac_ctx,
 	wlan_objmgr_vdev_release_ref(vdev, WLAN_LEGACY_SME_ID);
 	if (state == eCSR_NEIGHBOR_ROAM_STATE_CONNECTED) {
 		sme_debug("CONNECTED, send update cfg cmd");
-		csr_roam_update_cfg(mac_ctx, session_id, reason);
+		wlan_roam_update_cfg(mac_ctx->psoc, session_id, reason);
 	}
 	sme_debug("LFR config for %s changed from %d to %d",
 		  lfr_get_config_item_string(reason), old_value, value);
@@ -720,8 +720,9 @@ QDF_STATUS csr_neighbor_roam_indicate_disconnect(struct mac_context *mac,
 
 	/*Inform the Firmware to STOP Scanning as the host has a disconnect. */
 	if (csr_roam_is_sta_mode(mac, sessionId))
-		csr_post_roam_state_change(mac, sessionId, WLAN_ROAM_DEINIT,
-					   REASON_DISCONNECTED);
+		wlan_cm_roam_state_change(mac->pdev, sessionId,
+					  WLAN_ROAM_DEINIT,
+					  REASON_DISCONNECTED);
 
 	return QDF_STATUS_SUCCESS;
 }
@@ -826,9 +827,9 @@ static void csr_neighbor_roam_info_ctx_init(struct mac_context *mac,
 
 	ngbr_roam_info->uOsRequestedHandoff = 0;
 	if (!MLME_IS_ROAM_SYNCH_IN_PROGRESS(mac->psoc, session_id))
-		csr_post_roam_state_change(mac, session_id,
-					   WLAN_ROAM_RSO_ENABLED,
-					   REASON_CTX_INIT);
+		wlan_cm_roam_state_change(mac->pdev, session_id,
+					  WLAN_ROAM_RSO_ENABLED,
+					  REASON_CTX_INIT);
 }
 
 /**
@@ -1331,9 +1332,9 @@ QDF_STATUS csr_neighbor_roam_handoff_req_hdlr(
 			&handoff_req->bssid, QDF_MAC_ADDR_SIZE);
 	roam_ctrl_info->uOsRequestedHandoff = 1;
 
-	status = csr_post_roam_state_change(mac_ctx, session_id,
-					    WLAN_ROAM_RSO_STOPPED,
-					    REASON_OS_REQUESTED_ROAMING_NOW);
+	status = wlan_cm_roam_state_change(mac_ctx->pdev, session_id,
+					   WLAN_ROAM_RSO_STOPPED,
+					   REASON_OS_REQUESTED_ROAMING_NOW);
 	if (QDF_STATUS_SUCCESS != status) {
 		sme_err("ROAM: RSO stop failed");
 		roam_ctrl_info->uOsRequestedHandoff = 0;
@@ -1397,8 +1398,8 @@ QDF_STATUS csr_neighbor_roam_start_lfr_scan(struct mac_context *mac,
 	/* There is no candidate or We are not roaming Now.
 	 * Inform the FW to restart Roam Offload Scan
 	 */
-	csr_post_roam_state_change(mac, sessionId, WLAN_ROAM_RSO_ENABLED,
-				   REASON_NO_CAND_FOUND_OR_NOT_ROAMING_NOW);
+	wlan_cm_roam_state_change(mac->pdev, sessionId, WLAN_ROAM_RSO_ENABLED,
+				  REASON_NO_CAND_FOUND_OR_NOT_ROAMING_NOW);
 
 	return QDF_STATUS_SUCCESS;
 

+ 6 - 5
core/sme/src/csr/csr_roam_preauth.c

@@ -342,10 +342,10 @@ ABORT_PREAUTH:
 			reason = REASON_PREAUTH_FAILED_FOR_ALL;
 			if (neighbor_roam_info->uOsRequestedHandoff) {
 				neighbor_roam_info->uOsRequestedHandoff = 0;
-				csr_post_roam_state_change(
-						   mac_ctx, session_id,
-						   WLAN_ROAM_RSO_ENABLED,
-						   reason);
+				wlan_cm_roam_state_change(mac_ctx->pdev,
+						session_id,
+						WLAN_ROAM_RSO_ENABLED,
+						reason);
 			} else {
 				/* ROAM_SCAN_OFFLOAD_RESTART is a
 				 * special command to trigger bmiss
@@ -353,7 +353,8 @@ ABORT_PREAUTH:
 				 * preauth failure.
 				 * This should be decoupled from RSO.
 				 */
-				csr_roam_offload_scan(mac_ctx, session_id,
+				wlan_cm_roam_send_rso_cmd(mac_ctx->psoc,
+						      session_id,
 						      ROAM_SCAN_OFFLOAD_RESTART,
 						      reason);
 			}

+ 1 - 1
core/sme/src/qos/sme_qos.c

@@ -5596,7 +5596,7 @@ static QDF_STATUS sme_qos_process_add_ts_success_rsp(struct mac_context *mac,
 	/* Inform this TSPEC IE change to FW */
 	opmode = wlan_get_opmode_from_vdev_id(mac->pdev, sessionId);
 	if (opmode == QDF_STA_MODE)
-		csr_roam_update_cfg(mac, sessionId,
+		wlan_roam_update_cfg(mac->psoc, sessionId,
 				    REASON_CONNECT_IES_CHANGED);
 
 	(void)sme_qos_process_buffered_cmd(sessionId);