qcacld-3.0: Changes to support converged scan component

Changes to support converged scan component.

Change-Id: Ic91a437bcb0b3b0ca4dd6d4fe86fcc86f24dc15f
CRs-Fixed: 2013212
diff --git a/Kbuild b/Kbuild
index 1fc7802..e3f71fe 100644
--- a/Kbuild
+++ b/Kbuild
@@ -1484,6 +1484,7 @@
 		-DWLAN_FEATURE_MBSSID \
 		-DCONFIG_160MHZ_SUPPORT \
 		-DCONFIG_MCL \
+		-DNAPIER_SCAN \
 		-DWLAN_PMO_ENABLE \
 		-DCONVERGED_P2P_ENABLE \
 		-DWLAN_POLICY_MGR_ENABLE \
diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c
index 6a4fc8d..ac8efbe 100644
--- a/core/hdd/src/wlan_hdd_main.c
+++ b/core/hdd/src/wlan_hdd_main.c
@@ -5317,7 +5317,9 @@
 		 * the expectation is that by the time Request Full Power has
 		 * completed, all scans will be cancelled
 		 */
+#ifndef NAPIER_SCAN
 		hdd_cleanup_scan_queue(hdd_ctx);
+#endif
 		hdd_abort_mac_scan_all_adapters(hdd_ctx);
 		hdd_abort_sched_scan_all_adapters(hdd_ctx);
 		hdd_stop_all_adapters(hdd_ctx);
diff --git a/core/sme/src/csr/csr_api_scan.c b/core/sme/src/csr/csr_api_scan.c
index bdaaa46..9b37bd8 100644
--- a/core/sme/src/csr/csr_api_scan.c
+++ b/core/sme/src/csr/csr_api_scan.c
@@ -8486,7 +8486,7 @@
 	qdf_mem_copy(bss_desc->bssId,
 			scan_entry->bssid.bytes,
 			QDF_MAC_ADDR_SIZE);
-	bss_desc->scanSysTimeMsec = scan_entry->scan_entry_time;
+	bss_desc->scansystimensec = scan_entry->scan_entry_time;
 	qdf_mem_copy(bss_desc->timeStamp,
 		scan_entry->tsf_info.data, 8);
 
diff --git a/core/wma/inc/wma_internal.h b/core/wma/inc/wma_internal.h
index 815b8c0..8fa071a 100644
--- a/core/wma/inc/wma_internal.h
+++ b/core/wma/inc/wma_internal.h
@@ -198,7 +198,7 @@
 
 QDF_STATUS wma_get_buf_start_scan_cmd(tp_wma_handle wma_handle,
 				      tSirScanOffloadReq *scan_req,
-				      struct scan_start_params *cmd);
+				      struct scan_req_params *cmd);
 
 QDF_STATUS wma_get_buf_stop_scan_cmd(tp_wma_handle wma_handle,
 				     wmi_buf_t *buf,
diff --git a/core/wma/src/wma_scan_roam.c b/core/wma/src/wma_scan_roam.c
index cb467e8..0b62d89 100644
--- a/core/wma/src/wma_scan_roam.c
+++ b/core/wma/src/wma_scan_roam.c
@@ -73,7 +73,7 @@
 #include "ol_htt_api.h"
 #include <cdp_txrx_handle.h>
 #include "wma_he.h"
-
+#include <wlan_scan_public_structs.h>
 #define WMA_MCC_MIRACAST_REST_TIME 400
 #define WMA_SCAN_ID_MASK 0x0fff
 
@@ -177,7 +177,7 @@
  */
 QDF_STATUS wma_get_buf_start_scan_cmd(tp_wma_handle wma_handle,
 				      tSirScanOffloadReq *scan_req,
-				      struct scan_start_params *cmd)
+				      struct scan_req_params *cmd)
 {
 	QDF_STATUS qdf_status = QDF_STATUS_E_FAILURE;
 	uint32_t dwell_time;
@@ -212,7 +212,7 @@
 
 	/* Set the scan events which the driver is intereseted to receive */
 	/* TODO: handle all the other flags also */
-	cmd->notify_scan_events = WMI_SCAN_EVENT_STARTED |
+	cmd->scan_events = WMI_SCAN_EVENT_STARTED |
 				  WMI_SCAN_EVENT_START_FAILED |
 				  WMI_SCAN_EVENT_FOREIGN_CHANNEL |
 				  WMI_SCAN_EVENT_COMPLETED |
@@ -260,23 +260,20 @@
 	cmd->max_scan_time = WMA_HW_DEF_SCAN_MAX_DURATION;
 
 	/* add DS param IE in probe req frame */
-	cmd->scan_ctrl_flags |= WMI_SCAN_ADD_DS_IE_IN_PROBE_REQ;
+	cmd->scan_f_add_ds_ie_in_probe = true;
 
 	/* set flag to get chan stats */
 	if (pMac->snr_monitor_enabled)
-		cmd->scan_ctrl_flags |= WMI_SCAN_CHAN_STAT_EVENT;
+		cmd->scan_f_chan_stat_evnt = true;
 
 	/* do not add OFDM rates in 11B mode */
 	if (scan_req->dot11mode != WNI_CFG_DOT11_MODE_11B)
-		cmd->scan_ctrl_flags |= WMI_SCAN_ADD_OFDM_RATES;
+		cmd->scan_f_ofdm_rates = true;
 	else
 		WMA_LOGD("OFDM_RATES not included in 11B mode");
 
 	if (scan_req->p2pScanType)
-		scan_req->scan_adaptive_dwell_mode = WMI_DWELL_MODE_STATIC;
-
-	WMI_SCAN_SET_DWELL_MODE(cmd->scan_ctrl_flags,
-			scan_req->scan_adaptive_dwell_mode);
+		cmd->adaptive_dwell_time_mode = WMI_DWELL_MODE_STATIC;
 
 	/* Do not combine multiple channels in a single burst. Come back
 	 * to home channel for data traffic after every foreign channel.
@@ -286,13 +283,13 @@
 
 	if (!scan_req->p2pScanType) {
 		WMA_LOGD("Normal Scan request");
-		cmd->scan_ctrl_flags |= WMI_SCAN_ADD_CCK_RATES;
+		cmd->scan_f_cck_rates = true;
 		if (!scan_req->numSsid)
-			cmd->scan_ctrl_flags |= WMI_SCAN_ADD_BCAST_PROBE_REQ;
+			cmd->scan_f_bcast_probe = true;
 		if (scan_req->scanType == eSIR_PASSIVE_SCAN)
-			cmd->scan_ctrl_flags |= WMI_SCAN_FLAG_PASSIVE;
-		cmd->scan_ctrl_flags |= WMI_SCAN_ADD_TPC_IE_IN_PROBE_REQ;
-		cmd->scan_ctrl_flags |= WMI_SCAN_FILTER_PROBE_REQ;
+			cmd->scan_f_passive = true;
+		cmd->scan_f_add_tpc_ie_in_probe = true;
+		cmd->scan_f_filter_prb_req = true;
 
 		/*
 		 * Decide burst_duration and dwell_time_active based on
@@ -370,15 +367,15 @@
 		switch (scan_req->p2pScanType) {
 		case P2P_SCAN_TYPE_LISTEN:
 			WMA_LOGD("P2P_SCAN_TYPE_LISTEN");
-			cmd->scan_ctrl_flags |= WMI_SCAN_FLAG_PASSIVE;
-			cmd->notify_scan_events |=
+			cmd->scan_f_passive = true;
+			cmd->scan_events |=
 				WMI_SCAN_EVENT_FOREIGN_CHANNEL;
 			cmd->repeat_probe_time = 0;
 			cmd->scan_priority = WMI_SCAN_PRIORITY_HIGH;
 			break;
 		case P2P_SCAN_TYPE_SEARCH:
 			WMA_LOGD("P2P_SCAN_TYPE_SEARCH");
-			cmd->scan_ctrl_flags |= WMI_SCAN_FILTER_PROBE_REQ;
+			cmd->scan_f_filter_prb_req = true;
 			/* Default P2P burst duration of 120 ms will cover
 			 * 3 channels with default max dwell time 40 ms.
 			 * Cap limit will be set by
@@ -463,14 +460,12 @@
 	if (scan_req->numSsid) {
 		for (i = 0; i < scan_req->numSsid; ++i) {
 			cmd->ssid[i].length = scan_req->ssId[i].length;
-			qdf_mem_copy(cmd->ssid[i].mac_ssid,
+			qdf_mem_copy(cmd->ssid[i].ssid,
 				     scan_req->ssId[i].ssId,
 				     scan_req->ssId[i].length);
 		}
 	}
 
-	cmd->num_bssid = 1;
-
 	if (!scan_req->p2pScanType) {
 		if (wma_is_sap_active(wma_handle)) {
 			SSID_num = cmd->num_ssids * cmd->num_bssid;
@@ -492,12 +487,11 @@
 		cmd->num_ssids,
 		cmd->num_bssid);
 
-	qdf_mem_copy(cmd->mac_add_bytes, scan_req->bssId.bytes, QDF_MAC_ADDR_SIZE);
-	cmd->ie_len = scan_req->uIEFieldLen;
-	cmd->ie_len_with_pad = roundup(scan_req->uIEFieldLen, sizeof(uint32_t));
-	cmd->uie_fieldOffset = scan_req->uIEFieldOffset;
-	cmd->ie_base = (uint8_t *) scan_req;
-
+	cmd->num_bssid = 1;
+	qdf_mem_copy(cmd->bssid_list, scan_req->bssId.bytes, QDF_MAC_ADDR_SIZE);
+	cmd->extraie.len = scan_req->uIEFieldLen;
+	cmd->extraie.ptr = (uint8_t *) scan_req +
+			     (scan_req->uIEFieldOffset);
 	return QDF_STATUS_SUCCESS;
 
 error:
@@ -519,17 +513,9 @@
 {
 	uint32_t vdev_id, scan_id;
 	QDF_STATUS qdf_status = QDF_STATUS_SUCCESS;
-	struct scan_start_params cmd = {0};
+	struct scan_req_params cmd = {0};
 	tSirScanOffloadEvent *scan_event;
 
-	if (scan_req->channelList.numChannels > 0) {
-		cmd.chan_list = qdf_mem_malloc(sizeof(uint32_t) *
-				scan_req->channelList.numChannels);
-		if (NULL == cmd.chan_list) {
-			qdf_status = QDF_STATUS_E_NOMEM;
-			goto error;
-		}
-	}
 	if (scan_req->sessionId > wma_handle->max_bssid) {
 		WMA_LOGE("%s: Invalid vdev_id %d, msg_type : 0x%x", __func__,
 			 scan_req->sessionId, msg_type);
@@ -566,7 +552,7 @@
 	scan_id = cmd.scan_id;
 	WMA_LOGI("ActiveDwell %d, PassiveDwell %d, ScanFlags 0x%x NumChan %d",
 		 cmd.dwell_time_active, cmd.dwell_time_passive,
-		 cmd.scan_ctrl_flags, cmd.num_chan);
+		 cmd.scan_flags, cmd.num_chan);
 
 	/* Call the wmi api to request the scan */
 	qdf_status = wmi_unified_scan_start_cmd_send(wma_handle->wmi_handle,
@@ -576,9 +562,6 @@
 		goto dec_scans;
 	}
 
-	if (NULL != cmd.chan_list)
-		qdf_mem_free(cmd.chan_list);
-
 	WMA_LOGI("WMA --> WMI_START_SCAN_CMDID");
 
 	return QDF_STATUS_SUCCESS;
@@ -590,7 +573,6 @@
 	if (NULL != cmd.chan_list)
 		qdf_mem_free(cmd.chan_list);
 
-error:
 	/* Send completion event for only for start scan request */
 	if (msg_type == WMA_START_SCAN_OFFLOAD_REQ) {
 		scan_event =
@@ -628,13 +610,13 @@
 			 tAbortScanParams *abort_scan_req)
 {
 	QDF_STATUS qdf_status;
-	struct scan_stop_params scan_param = {0};
+	struct scan_cancel_param  scan_param = {0};
 
 	scan_param.vdev_id = abort_scan_req->SessionId;
-	scan_param.requestor = abort_scan_req->scan_requestor_id;
+	scan_param.requester = abort_scan_req->scan_requestor_id;
 	scan_param.scan_id = abort_scan_req->scan_id;
 	/* stop the scan with the corresponding scan_id */
-	scan_param.req_type = WMI_SCAN_STOP_ONE;
+	scan_param.req_type = WLAN_SCAN_CANCEL_SINGLE;
 	qdf_status = wmi_unified_scan_stop_cmd_send(wma_handle->wmi_handle,
 						&scan_param);
 	/* Call the wmi api to request the scan */