From 741b279e5503ae6d9d8323c98c61f63b5f662f20 Mon Sep 17 00:00:00 2001 From: Pragaspathi Thilagaraj Date: Tue, 18 Feb 2020 22:12:40 +0530 Subject: [PATCH] qcacld-3.0: Populate correct channel to filter rrm scan result The host driver start scan request on channels in the operating class requested in the beacon report request. Starting from first channel all channels are scanned one after another. The scan request is sent in correct order of the channels in operating class, but when filtering the scan results from the scan db, the channel freqency is not indexed properly so first channel is sent to the filter always. Due to this, always beacon report response has only entries from first channel from the OP class. Populate the correct channel frequency to filter the rrm scan result. Change-Id: I75461a4da99be9ef215f8c16258e0e21877fe362 CRs-Fixed: 2619363 --- core/sme/src/rrm/sme_rrm.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/core/sme/src/rrm/sme_rrm.c b/core/sme/src/rrm/sme_rrm.c index e25fa4292e..d86c690ffc 100644 --- a/core/sme/src/rrm/sme_rrm.c +++ b/core/sme/src/rrm/sme_rrm.c @@ -688,7 +688,7 @@ static QDF_STATUS sme_rrm_scan_request_callback(mac_handle_t mac_handle, ch_idx = pSmeRrmContext->currentIndex; num_chan = pSmeRrmContext->channelList.numOfChannels; if (((ch_idx + 1) < num_chan) && valid_result) { - sme_rrm_send_scan_result(mac, 1, freq_list, false); + sme_rrm_send_scan_result(mac, 1, &freq_list[ch_idx], false); /* Advance the current index. */ pSmeRrmContext->currentIndex++; /* start the timer to issue next request. */ @@ -712,7 +712,7 @@ static QDF_STATUS sme_rrm_scan_request_callback(mac_handle_t mac_handle, /* Done with the measurement. Clean up all context and send a * message to PE with measurement done flag set. */ - sme_rrm_send_scan_result(mac, 1, freq_list, true); + sme_rrm_send_scan_result(mac, 1, &freq_list[ch_idx], true); qdf_mem_free(pSmeRrmContext->channelList.freq_list); pSmeRrmContext->channelList.freq_list = NULL; sme_reset_ese_bcn_req_in_progress(pSmeRrmContext); @@ -925,7 +925,7 @@ static QDF_STATUS sme_rrm_issue_scan_req(struct mac_context *mac_ctx) ch_idx = sme_rrm_ctx->currentIndex; if ((ch_idx + 1) < sme_rrm_ctx->channelList.numOfChannels) { sme_rrm_send_scan_result(mac_ctx, 1, - freq_list, false); + &freq_list[ch_idx], false); /* Advance the current index. */ sme_rrm_ctx->currentIndex++; sme_rrm_issue_scan_req(mac_ctx); @@ -939,7 +939,7 @@ static QDF_STATUS sme_rrm_issue_scan_req(struct mac_context *mac_ctx) * send a message to PE with measurement done flag set. */ sme_rrm_send_scan_result(mac_ctx, 1, - freq_list, true); + &freq_list[ch_idx], true); goto free_ch_lst; } }