qcacld-3.0: Refactor WMA data commands to fix WIN compilation

Refactor WMA data commands to remove dependency of WMA header files
in common wmi layer.

Change-Id: I48978e51ca6bd4416420ee66746d5bfe7adae3c9
CRs-Fixed: 1008872
diff --git a/core/wma/src/wma_data.c b/core/wma/src/wma_data.c
index b49200c..ec39b53 100644
--- a/core/wma/src/wma_data.c
+++ b/core/wma/src/wma_data.c
@@ -2385,6 +2385,7 @@
 	uint8_t proto_type = 0;
 #endif /* QCA_PKT_PROTO_TRACE */
 	struct wmi_mgmt_params mgmt_param = {0};
+	struct wmi_desc_t *wmi_desc = NULL;
 	ol_pdev_handle ctrl_pdev;
 
 	if (NULL == wma_handle) {
@@ -2715,21 +2716,25 @@
 		mgmt_param.tx_frame = tx_frame;
 		mgmt_param.frm_len = frmLen;
 		mgmt_param.vdev_id = vdev_id;
-		mgmt_param.tx_complete_cb = tx_frm_download_comp_cb;
-		mgmt_param.tx_ota_post_proc_cb = tx_frm_ota_comp_cb;
-		mgmt_param.chanfreq = chanfreq;
 		mgmt_param.pdata = pData;
+		mgmt_param.chanfreq = chanfreq;
 		mgmt_param.qdf_ctx = cds_get_context(QDF_MODULE_ID_QDF_DEVICE);
-		mgmt_param.wmi_desc = wmi_desc_get(wma_handle);
-		if (NULL == mgmt_param.wmi_desc) {
-			WMA_LOGE(FL("Failed to get wmi descriptor"));
+		wmi_desc = wmi_desc_get(wma_handle);
+		if (!wmi_desc) {
+			WMA_LOGE("%s: Failed to get wmi_desc", __func__);
 			status = QDF_STATUS_E_FAILURE;
 		} else {
+			mgmt_param.desc_id = wmi_desc->desc_id;
 			status = wmi_mgmt_unified_cmd_send(
-						wma_handle->wmi_handle,
-						&mgmt_param);
-			if (status)
-				wmi_desc_put(wma_handle, mgmt_param.wmi_desc);
+					wma_handle->wmi_handle,
+					&mgmt_param);
+			if (status) {
+				wmi_desc_put(wma_handle, wmi_desc);
+			} else {
+				wmi_desc->nbuf = tx_frame;
+				wmi_desc->tx_cmpl_cb = tx_frm_download_comp_cb;
+				wmi_desc->ota_post_proc_cb = tx_frm_ota_comp_cb;
+			}
 		}
 	} else {
 		/* Hand over the Tx Mgmt frame to TxRx */
diff --git a/core/wma/src/wma_mgmt.c b/core/wma/src/wma_mgmt.c
index 48ae5e9..f416f70 100644
--- a/core/wma/src/wma_mgmt.c
+++ b/core/wma/src/wma_mgmt.c
@@ -663,6 +663,12 @@
 		return;
 	}
 
+	if (timeperiod > WNI_CFG_INFRA_STA_KEEP_ALIVE_PERIOD_STAMAX) {
+		WMI_LOGE("Invalid period %d Max limit %d", timeperiod,
+			 WNI_CFG_INFRA_STA_KEEP_ALIVE_PERIOD_STAMAX);
+		return;
+	}
+
 	params.vdev_id = vdev_id;
 	params.method = method;
 	params.timeperiod = timeperiod;