|
@@ -6941,6 +6941,12 @@ sme_restore_default_roaming_params(struct mac_context *mac,
|
|
|
mac->mlme_cfg->lfr.roam_scan_home_away_time;
|
|
|
roam_info->cfgParams.roam_scan_n_probes =
|
|
|
mac->mlme_cfg->lfr.roam_scan_n_probes;
|
|
|
+ roam_info->cfgParams.roam_scan_inactivity_time =
|
|
|
+ mac->mlme_cfg->lfr.roam_scan_inactivity_time;
|
|
|
+ roam_info->cfgParams.roam_inactive_data_packet_count =
|
|
|
+ mac->mlme_cfg->lfr.roam_inactive_data_packet_count;
|
|
|
+ roam_info->cfgParams.roam_scan_period_after_inactivity =
|
|
|
+ mac->mlme_cfg->lfr.roam_scan_period_after_inactivity;
|
|
|
}
|
|
|
|
|
|
QDF_STATUS sme_roam_control_restore_default_config(mac_handle_t mac_handle,
|
|
@@ -16218,8 +16224,13 @@ QDF_STATUS sme_set_roam_config_enable(mac_handle_t mac_handle,
|
|
|
uint8_t roam_control_enable)
|
|
|
{
|
|
|
struct mac_context *mac = MAC_CONTEXT(mac_handle);
|
|
|
+ tCsrNeighborRoamControlInfo *neighbor_roam_info;
|
|
|
+ tCsrNeighborRoamCfgParams *cfg_params;
|
|
|
QDF_STATUS status;
|
|
|
|
|
|
+ if (!mac->mlme_cfg->lfr.roam_scan_offload_enabled)
|
|
|
+ return QDF_STATUS_E_INVAL;
|
|
|
+
|
|
|
if (vdev_id >= WLAN_MAX_VDEVS) {
|
|
|
sme_err("Invalid vdev_id: %d", vdev_id);
|
|
|
return QDF_STATUS_E_INVAL;
|
|
@@ -16230,8 +16241,19 @@ QDF_STATUS sme_set_roam_config_enable(mac_handle_t mac_handle,
|
|
|
sme_err("Failed to acquire sme lock; status: %d", status);
|
|
|
return status;
|
|
|
}
|
|
|
- mac->roam.neighborRoamInfo[vdev_id].roam_control_enable =
|
|
|
- !!roam_control_enable;
|
|
|
+ neighbor_roam_info = &mac->roam.neighborRoamInfo[vdev_id];
|
|
|
+
|
|
|
+ neighbor_roam_info->roam_control_enable = !!roam_control_enable;
|
|
|
+ if (roam_control_enable) {
|
|
|
+ cfg_params = &neighbor_roam_info->cfgParams;
|
|
|
+ cfg_params->roam_scan_period_after_inactivity = 0;
|
|
|
+ cfg_params->roam_inactive_data_packet_count = 0;
|
|
|
+ cfg_params->roam_scan_inactivity_time = 0;
|
|
|
+
|
|
|
+ csr_roam_offload_scan(mac, vdev_id,
|
|
|
+ ROAM_SCAN_OFFLOAD_UPDATE_CFG,
|
|
|
+ REASON_ROAM_CONTROL_CONFIG_ENABLED);
|
|
|
+ }
|
|
|
sme_release_global_lock(&mac->sme);
|
|
|
|
|
|
return status;
|