summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSridhar Selvaraj <sselvara@codeaurora.org>2017-06-28 17:41:50 +0530
committersnandini <snandini@codeaurora.org>2017-08-21 07:37:22 -0700
commitdbd911f32a7dc2d4e6876e576682640130e08de5 (patch)
tree6a7e4fd083800ba736e0c13fca7e642e02775dd5
parentfb7279a149e7f2ac0d4512d40677e28563c05932 (diff)
qcacld-3.0: Pass Probe request deferral params to fw
If a OCE AP is found in previous scan cache in fw, fw need to defer sending probe for sometime to check for broadcast probe response from OCE AP. Send the probe deferral time and the time gaps between the two probes from host for STA vdev. Change-Id: I973fc1e2ea43950bd4e2168083644a240a298c22 CRs-Fixed: 2068490
-rw-r--r--core/wma/inc/wma.h13
-rw-r--r--core/wma/src/wma_dev_if.c18
2 files changed, 31 insertions, 0 deletions
diff --git a/core/wma/inc/wma.h b/core/wma/inc/wma.h
index e62753ea7040..d8c7c211ecd1 100644
--- a/core/wma/inc/wma.h
+++ b/core/wma/inc/wma.h
@@ -506,6 +506,19 @@ enum ds_mode {
#define WMA_SCAN_END_EVENT (WMI_SCAN_EVENT_COMPLETED | \
WMI_SCAN_EVENT_DEQUEUED | \
WMI_SCAN_EVENT_START_FAILED)
+/*
+ * PROBE_REQ_TX_DELAY
+ * param to specify probe request Tx delay for scans triggered on this VDEV
+ */
+#define PROBE_REQ_TX_DELAY 10
+
+/* PROBE_REQ_TX_TIME_GAP
+ * param to specify the time gap between each set of probe request transmission.
+ * The number of probe requests in each set depends on the ssid_list and,
+ * bssid_list in the scan request. This parameter will get applied only,
+ * for the scans triggered on this VDEV.
+ */
+#define PROBE_REQ_TX_TIME_GAP 20
/**
* struct probeTime_dwellTime - probe time, dwell time map
diff --git a/core/wma/src/wma_dev_if.c b/core/wma/src/wma_dev_if.c
index 6415dd41ecd3..d4ed7cad39ba 100644
--- a/core/wma/src/wma_dev_if.c
+++ b/core/wma/src/wma_dev_if.c
@@ -2173,6 +2173,24 @@ ol_txrx_vdev_handle wma_vdev_attach(tp_wma_handle wma_handle,
self_sta_req->fils_max_chan_guard_time);
if (QDF_IS_STATUS_ERROR(ret))
WMA_LOGE("Failed to set WMI_VDEV_PARAM_FILS_MAX_CHANNEL_GUARD_TIME");
+
+ /* Pass down the Probe Request tx delay(in ms) to FW */
+ ret = wma_vdev_set_param(
+ wma_handle->wmi_handle,
+ self_sta_req->session_id,
+ WMI_VDEV_PARAM_PROBE_DELAY,
+ PROBE_REQ_TX_DELAY);
+ if (QDF_IS_STATUS_ERROR(ret))
+ WMA_LOGE("Failed to set WMI_VDEV_PARAM_PROBE_DELAY");
+
+ /* Pass down the probe request tx time gap(in ms) to FW */
+ ret = wma_vdev_set_param(
+ wma_handle->wmi_handle,
+ self_sta_req->session_id,
+ WMI_VDEV_PARAM_REPEAT_PROBE_TIME,
+ PROBE_REQ_TX_TIME_GAP);
+ if (QDF_IS_STATUS_ERROR(ret))
+ WMA_LOGE("Failed to set WMI_VDEV_PARAM_REPEAT_PROBE_TIME");
}
/* Initialize BMISS parameters */