소스 검색

qcacld-3.0: Allow dwell time for PNO scan control through config.ini

This is qcacld-2.0 to qcacld-3.0 propagation

Currently dwell time for PNO scan is passed as 0 to FW irrespective of
values set in config.ini. This patch allows active/passive dwell time
for PNO scan to be controlled by config.ini param.

Change-Id: I5562ed7e176af04ac8f38aa5af97257b9244cdc1
CRs-Fixed: 922054
Naveen Rawat 9 년 전
부모
커밋
cf7d2d56b0
3개의 변경된 파일31개의 추가작업 그리고 0개의 파일을 삭제
  1. 5 0
      core/mac/inc/sir_api.h
  2. 22 0
      core/sme/src/common/sme_power_save.c
  3. 4 0
      core/wma/src/wma_scan_roam.c

+ 5 - 0
core/mac/inc/sir_api.h

@@ -2746,6 +2746,11 @@ typedef struct sSirPNOScanReq {
 	tSirScanTimersType scanTimers;
 	uint8_t sessionId;
 
+	uint32_t        active_min_time;
+	uint32_t        active_max_time;
+	uint32_t        passive_min_time;
+	uint32_t        passive_max_time;
+
 	uint16_t us24GProbeTemplateLen;
 	uint8_t p24GProbeTemplate[SIR_PNO_MAX_PB_REQ_SIZE];
 	uint16_t us5GProbeTemplateLen;

+ 22 - 0
core/sme/src/common/sme_power_save.c

@@ -907,6 +907,28 @@ CDF_STATUS sme_set_ps_preferred_network_list(tHalHandle hal_ctx,
 		request_buf->sessionId = session_id;
 	}
 	sme_set_pno_channel_prediction(request_buf, mac_ctx);
+
+	if (csr_is_p2p_session_connected(mac_ctx)) {
+		/* if AP-STA concurrency is active */
+		request_buf->active_max_time =
+			mac_ctx->roam.configParam.nActiveMaxChnTimeConc;
+		request_buf->active_min_time =
+			mac_ctx->roam.configParam.nActiveMinChnTimeConc;
+		request_buf->passive_max_time =
+			mac_ctx->roam.configParam.nPassiveMaxChnTimeConc;
+		request_buf->passive_min_time =
+			mac_ctx->roam.configParam.nPassiveMinChnTimeConc;
+	} else {
+		request_buf->active_max_time =
+			mac_ctx->roam.configParam.nActiveMaxChnTime;
+		request_buf->active_min_time =
+			mac_ctx->roam.configParam.nActiveMinChnTime;
+		request_buf->passive_max_time =
+			mac_ctx->roam.configParam.nPassiveMaxChnTime;
+		request_buf->passive_min_time =
+			mac_ctx->roam.configParam.nPassiveMinChnTime;
+	}
+
 	msg.type = WMA_SET_PNO_REQ;
 	msg.reserved = 0;
 	msg.bodyptr = request_buf;

+ 4 - 0
core/wma/src/wma_scan_roam.c

@@ -3527,6 +3527,10 @@ CDF_STATUS wma_pno_start(tp_wma_handle wma, tpSirPNOScanReq pno)
 	cmd->vdev_id = pno->sessionId;
 	cmd->flags = WMI_NLO_CONFIG_START | WMI_NLO_CONFIG_SSID_HIDE_EN;
 
+	/* Current FW does not support min-max range for dwell time */
+	cmd->active_dwell_time = pno->active_max_time;
+	cmd->passive_dwell_time = pno->passive_max_time;
+
 	/* Copy scan interval */
 	if (pno->scanTimers.ucScanTimersCount) {
 		cmd->fast_scan_period =