diff --git a/core/hdd/inc/wlan_hdd_cfg.h b/core/hdd/inc/wlan_hdd_cfg.h index 58da4538afbe..4af4a4f258a6 100644 --- a/core/hdd/inc/wlan_hdd_cfg.h +++ b/core/hdd/inc/wlan_hdd_cfg.h @@ -2635,7 +2635,7 @@ enum dot11p_mode { #define CFG_ROAM_SCAN_HI_RSSI_MAXCOUNT_NAME "gRoamScanHiRssiMaxCount" #define CFG_ROAM_SCAN_HI_RSSI_MAXCOUNT_MIN (0) #define CFG_ROAM_SCAN_HI_RSSI_MAXCOUNT_MAX (10) -#define CFG_ROAM_SCAN_HI_RSSI_MAXCOUNT_DEFAULT (5) +#define CFG_ROAM_SCAN_HI_RSSI_MAXCOUNT_DEFAULT (3) /* Change in RSSI at which scan is triggered */ #define CFG_ROAM_SCAN_HI_RSSI_DELTA_NAME "gRoamScanHiRssiDelta" @@ -2646,14 +2646,14 @@ enum dot11p_mode { /* Delay between consecutive scans in milliseconds */ #define CFG_ROAM_SCAN_HI_RSSI_DELAY_NAME "gRoamScanHiRssiDelay" #define CFG_ROAM_SCAN_HI_RSSI_DELAY_MIN (5000) -#define CFG_ROAM_SCAN_HI_RSSI_DELAY_MAX (15000) -#define CFG_ROAM_SCAN_HI_RSSI_DELAY_DEFAULT (5000) +#define CFG_ROAM_SCAN_HI_RSSI_DELAY_MAX (0x7fffffff) +#define CFG_ROAM_SCAN_HI_RSSI_DELAY_DEFAULT (15000) /* Upper bound after which scan will not be performed */ #define CFG_ROAM_SCAN_HI_RSSI_UB_NAME "gRoamScanHiRssiUpperBound" -#define CFG_ROAM_SCAN_HI_RSSI_UB_MIN (-76) -#define CFG_ROAM_SCAN_HI_RSSI_UB_MAX (-30) -#define CFG_ROAM_SCAN_HI_RSSI_UB_DEFAULT (-45) +#define CFG_ROAM_SCAN_HI_RSSI_UB_MIN (-66) +#define CFG_ROAM_SCAN_HI_RSSI_UB_MAX (0) +#define CFG_ROAM_SCAN_HI_RSSI_UB_DEFAULT (-30) /* * gPNOChannelPrediction will allow user to enable/disable the * PNO channel prediction feature. diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index 41f33bf50486..af5b058be58d 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -17062,6 +17062,7 @@ csr_roam_offload_scan(tpAniSirGlobal mac_ctx, uint8_t session_id, struct roam_ext_params *roam_params_dst; struct roam_ext_params *roam_params_src; uint8_t i; + uint8_t op_channel; if (NULL == session) { CDF_TRACE(CDF_MODULE_ID_SME, CDF_TRACE_LEVEL_ERROR, @@ -17188,14 +17189,33 @@ csr_roam_offload_scan(tpAniSirGlobal mac_ctx, uint8_t session_id, roam_params_dst->bssid_favored_factor[i]); } + op_channel = session->connectedProfile.operationChannel; req_buf->hi_rssi_scan_max_count = roam_info->cfgParams.hi_rssi_scan_max_count; - req_buf->hi_rssi_scan_rssi_delta = - roam_info->cfgParams.hi_rssi_scan_rssi_delta; req_buf->hi_rssi_scan_delay = roam_info->cfgParams.hi_rssi_scan_delay; req_buf->hi_rssi_scan_rssi_ub = roam_info->cfgParams.hi_rssi_scan_rssi_ub; + /* + * If the current operation channel is 5G frequency band, then + * there is no need to enable the HI_RSSI feature. This feature + * is useful only if we are connected to a 2.4 GHz AP and we wish + * to connect to a better 5GHz AP is available. + */ + if (CDS_IS_CHANNEL_5GHZ(op_channel)) { + CDF_TRACE(CDF_MODULE_ID_SME, CDF_TRACE_LEVEL_DEBUG, + "Disabling HI_RSSI feature as connected AP is 5GHz"); + req_buf->hi_rssi_scan_rssi_delta = 0; + } else { + req_buf->hi_rssi_scan_rssi_delta = + roam_info->cfgParams.hi_rssi_scan_rssi_delta; + } + CDF_TRACE(CDF_MODULE_ID_SME, CDF_TRACE_LEVEL_DEBUG, + "hi_rssi:delta=%d, max_count=%d, delay=%d, ub=%d", + req_buf->hi_rssi_scan_rssi_delta, + req_buf->hi_rssi_scan_max_count, + req_buf->hi_rssi_scan_delay, + req_buf->hi_rssi_scan_rssi_ub); msg.type = WMA_ROAM_SCAN_OFFLOAD_REQ; msg.reserved = 0;