From 4bfed04ab496750cedfaef8f078df0c902d1ef72 Mon Sep 17 00:00:00 2001 From: Pragaspathi Thilagaraj Date: Fri, 11 Sep 2020 02:00:23 +0530 Subject: [PATCH] qcacld-3.0: Fix RSSI_CHANGE command values Move the rssi change vdev params initialization to csr_neighbor_roam_info_ctx_init() so that vdev priv object will be created and per vdev parameters are saved and proper values are sent to firmware. Change-Id: I87c8272d89f431fa3db60beed4d1da6d9790ec28 CRs-Fixed: 2774826 --- components/wmi/src/wmi_unified_roam_tlv.c | 7 +++++-- core/sme/src/csr/csr_neighbor_roam.c | 25 ++++++++++++++--------- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/components/wmi/src/wmi_unified_roam_tlv.c b/components/wmi/src/wmi_unified_roam_tlv.c index 4afdf2f05b..d415fa8d49 100644 --- a/components/wmi/src/wmi_unified_roam_tlv.c +++ b/components/wmi/src/wmi_unified_roam_tlv.c @@ -1946,7 +1946,7 @@ static uint8_t *wmi_add_fils_tlv(wmi_unified_t wmi_handle, erp_info->realm_len); buf_ptr += sizeof(*fils_tlv); - wmi_debug("RSO_CONFIG: ERP: usrname_len:%d next_erp_seq_num:%d rRk_len:%d rIk_len:%d realm_len:%d", + wmi_debug("RSO_CFG: ERP: usrname_len:%d next_erp_seq_num:%d rRk_len:%d rIk_len:%d realm_len:%d", erp_info->username_length, erp_info->next_erp_seq_num, erp_info->rRk_length, erp_info->rIk_length, erp_info->realm_len); @@ -3282,6 +3282,9 @@ static QDF_STATUS send_roam_scan_offload_chan_list_cmd_tlv( (i < WMI_ROAM_MAX_CHANNELS)); i++) roam_chan_list_array[i] = chan_list[i]; + wmi_debug("RSO_CFG: vdev:%d num_chan:%d cache_type:%d", + chan_list_fp->vdev_id, chan_list_fp->num_chan, + rso_ch_info->chan_cache_type); wmi_mtrace(WMI_ROAM_CHAN_LIST, NO_SESSION, 0); status = wmi_unified_cmd_send(wmi_handle, buf, len, WMI_ROAM_CHAN_LIST); @@ -3417,7 +3420,7 @@ static QDF_STATUS send_roam_scan_offload_rssi_change_cmd_tlv( if (QDF_IS_STATUS_ERROR(status)) goto error; - wmi_nofl_debug("RSO_PARAM: rssi_change_thresh:%d bcn_rssi_weight:%d hirssi_delay_btw_scans:%d", + wmi_nofl_debug("RSO_CFG: rssi_change_thresh:%d bcn_rssi_weight:%d hirssi_delay_btw_scans:%d", rssi_change_fp->roam_scan_rssi_change_thresh, rssi_change_fp->bcn_rssi_weight, rssi_change_fp->hirssi_delay_btw_scans); diff --git a/core/sme/src/csr/csr_neighbor_roam.c b/core/sme/src/csr/csr_neighbor_roam.c index 4c5c25260d..e83fd52db8 100644 --- a/core/sme/src/csr/csr_neighbor_roam.c +++ b/core/sme/src/csr/csr_neighbor_roam.c @@ -799,6 +799,7 @@ static void csr_neighbor_roam_info_ctx_init(struct mac_context *mac, { tpCsrNeighborRoamControlInfo ngbr_roam_info = &mac->roam.neighborRoamInfo[session_id]; + struct cm_roam_values_copy src_cfg; struct csr_roam_session *session = &mac->roam.roamSession[session_id]; int init_ft_flag = false; @@ -823,6 +824,20 @@ static void csr_neighbor_roam_info_ctx_init(struct mac_context *mac, ngbr_roam_info->currentRoamBeaconRssiWeight = ngbr_roam_info->cfgParams.nRoamBeaconRssiWeight; + /* + * Update RSSI change params to vdev + */ + src_cfg.uint_value = mac->mlme_cfg->lfr.roam_rescan_rssi_diff; + wlan_cm_roam_cfg_set_value(mac->psoc, session_id, + RSSI_CHANGE_THRESHOLD, &src_cfg); + + src_cfg.uint_value = mac->mlme_cfg->lfr.roam_beacon_rssi_weight; + wlan_cm_roam_cfg_set_value(mac->psoc, session_id, + BEACON_RSSI_WEIGHT, &src_cfg); + + src_cfg.uint_value = mac->mlme_cfg->lfr.roam_scan_hi_rssi_delay; + wlan_cm_roam_cfg_set_value(mac->psoc, session_id, + HI_RSSI_DELAY_BTW_SCANS, &src_cfg); /* * Now we can clear the preauthDone that * was saved as we are connected afresh @@ -1037,7 +1052,6 @@ QDF_STATUS csr_neighbor_roam_init(struct mac_context *mac, uint8_t sessionId) { QDF_STATUS status; tCsrChannelInfo *specific_chan_info; - struct cm_roam_values_copy src_cfg; tpCsrNeighborRoamControlInfo pNeighborRoamInfo = &mac->roam.neighborRoamInfo[sessionId]; @@ -1058,9 +1072,6 @@ QDF_STATUS csr_neighbor_roam_init(struct mac_context *mac, uint8_t sessionId) mac->mlme_cfg->lfr.opportunistic_scan_threshold_diff; pNeighborRoamInfo->cfgParams.nRoamRescanRssiDiff = mac->mlme_cfg->lfr.roam_rescan_rssi_diff; - src_cfg.uint_value = mac->mlme_cfg->lfr.roam_rescan_rssi_diff; - wlan_cm_roam_cfg_set_value(mac->psoc, sessionId, - RSSI_CHANGE_THRESHOLD, &src_cfg); pNeighborRoamInfo->cfgParams.nRoamBmissFirstBcnt = mac->mlme_cfg->lfr.roam_bmiss_first_bcnt; @@ -1069,9 +1080,6 @@ QDF_STATUS csr_neighbor_roam_init(struct mac_context *mac, uint8_t sessionId) pNeighborRoamInfo->cfgParams.nRoamBeaconRssiWeight = mac->mlme_cfg->lfr.roam_beacon_rssi_weight; - src_cfg.uint_value = mac->mlme_cfg->lfr.roam_beacon_rssi_weight; - wlan_cm_roam_cfg_set_value(mac->psoc, sessionId, - BEACON_RSSI_WEIGHT, &src_cfg); pNeighborRoamInfo->cfgParams.neighborScanPeriod = mac->mlme_cfg->lfr.neighbor_scan_timer_period; @@ -1127,9 +1135,6 @@ QDF_STATUS csr_neighbor_roam_init(struct mac_context *mac, uint8_t sessionId) pNeighborRoamInfo->cfgParams.hi_rssi_scan_delay = mac->mlme_cfg->lfr.roam_scan_hi_rssi_delay; - src_cfg.uint_value = mac->mlme_cfg->lfr.roam_scan_hi_rssi_delay; - wlan_cm_roam_cfg_set_value(mac->psoc, sessionId, - HI_RSSI_DELAY_BTW_SCANS, &src_cfg); pNeighborRoamInfo->cfgParams.hi_rssi_scan_rssi_ub = mac->mlme_cfg->lfr.roam_scan_hi_rssi_ub;