Browse Source

qcacld-3.0: Enable HI_RSSI feature only when connected to 2.4GHz AP

qcacld-2.0 to qcacld-3.0 propagation

1) Enable the feature only when connected to 2.4 GHz AP.
2) Modify the default values to reduce the scans and not impact power

CRs-Fixed: 817919
Change-Id: Idaff886cec558a06cf9341e47a8ce17b348ad72b
Varun Reddy Yeturu 9 years ago
parent
commit
062dc74d0d
2 changed files with 28 additions and 8 deletions
  1. 6 6
      core/hdd/inc/wlan_hdd_cfg.h
  2. 22 2
      core/sme/src/csr/csr_api_roam.c

+ 6 - 6
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.

+ 22 - 2
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;