From 7b5efba2962263136d8b02deabce895d85b0462c Mon Sep 17 00:00:00 2001 From: gaurank kathpalia Date: Fri, 19 Apr 2019 15:40:55 +0530 Subject: [PATCH] qcacld-3.0: Modify scan type for RRM scan request Currently in the case of concurrent sessions running, the driver updates the active dwell time for the scan request to the default value, overwriting the already filled active dwell time which the DUT got from the AP as part of RRM request, which results in violation of protocol. Fix is to not update the concurrency params if the scan request is of type RRM. Change-Id: I09ebfbee0d282391be17aed7eaf56e3c53c2a5e2 CRs-Fixed: 2438535 --- components/p2p/core/src/wlan_p2p_roc.c | 2 +- core/sme/src/rrm/sme_rrm.c | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/components/p2p/core/src/wlan_p2p_roc.c b/components/p2p/core/src/wlan_p2p_roc.c index 7f87c7e8fecb..9994e45661f9 100644 --- a/components/p2p/core/src/wlan_p2p_roc.c +++ b/components/p2p/core/src/wlan_p2p_roc.c @@ -109,7 +109,7 @@ static QDF_STATUS p2p_scan_start(struct p2p_roc_context *roc_ctx) roc_ctx->scan_id = ucfg_scan_get_scan_id(p2p_soc_obj->soc); req->vdev = vdev; req->scan_req.scan_id = roc_ctx->scan_id; - req->scan_req.p2p_scan_type = SCAN_P2P_LISTEN; + req->scan_req.scan_type = SCAN_TYPE_P2P_LISTEN; req->scan_req.scan_req_id = p2p_soc_obj->scan_req_id; req->scan_req.chan_list.num_chan = 1; req->scan_req.chan_list.chan[0].freq = wlan_chan_to_freq(roc_ctx->chan); diff --git a/core/sme/src/rrm/sme_rrm.c b/core/sme/src/rrm/sme_rrm.c index 32d19e0f58cb..d37f5005b789 100644 --- a/core/sme/src/rrm/sme_rrm.c +++ b/core/sme/src/rrm/sme_rrm.c @@ -887,6 +887,15 @@ static QDF_STATUS sme_rrm_issue_scan_req(struct mac_context *mac_ctx) req->scan_req.dwell_time_active, chan_num, req->scan_req.chan_list.chan[0].freq); + /* + * Fill RRM scan type for these requests. This is done + * because in scan concurrency update params we update the + * dwell time active which was not the expectation. + * So doing a check of RRM scan request, we would not + * update the dwell time. + */ + req->scan_req.scan_type = SCAN_TYPE_RRM; + status = ucfg_scan_start(req); wlan_objmgr_vdev_release_ref(vdev, WLAN_LEGACY_SME_ID); if (QDF_IS_STATUS_ERROR(status))