qcacmn: Change beacon tx WMI API under feature flag

Remove CONFIG_MCL for Beacon buf send WMI command APIs.
And move them under WLAN_WMI_BCN.

Change-Id: Ie5053334bd7498cb9dd84dbc515ffd3414a4ad32
CRs-Fixed: 2483567
diff --git a/wmi/inc/wmi_unified_priv.h b/wmi/inc/wmi_unified_priv.h
index 947b72c..38d0189 100644
--- a/wmi/inc/wmi_unified_priv.h
+++ b/wmi/inc/wmi_unified_priv.h
@@ -783,7 +783,7 @@
 		uint8_t filter_id, bool enable);
 #endif
 #endif /* end of WLAN_POWER_MANAGEMENT_OFFLOAD */
-#ifdef CONFIG_MCL
+#ifdef WLAN_WMI_BCN
 QDF_STATUS (*send_bcn_buf_ll_cmd)(wmi_unified_t wmi_handle,
 			wmi_bcn_send_from_host_cmd_fixed_param * param);
 #endif
@@ -2372,6 +2372,14 @@
 }
 #endif
 
+#ifdef WLAN_WMI_BCN
+void wmi_bcn_attach_tlv(wmi_unified_t wmi_handle);
+#else
+static inline void wmi_bcn_attach_tlv(wmi_unified_t wmi_handle)
+{
+}
+#endif
+
 /**
  * wmi_align() - provides word aligned parameter
  * @param: parameter to be aligned
diff --git a/wmi/src/wmi_unified_bcn_tlv.c b/wmi/src/wmi_unified_bcn_tlv.c
new file mode 100644
index 0000000..714c9d2
--- /dev/null
+++ b/wmi/src/wmi_unified_bcn_tlv.c
@@ -0,0 +1,71 @@
+
+/*
+ * Copyright (c) 2016-2019 The Linux Foundation. All rights reserved.
+ *
+ * Permission to use, copy, modify, and/or distribute this software for
+ * any purpose with or without fee is hereby granted, provided that the
+ * above copyright notice and this permission notice appear in all
+ * copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+ * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+#include <osdep.h>
+#include <wmi.h>
+#include <wmi_unified_priv.h>
+#include "wmi_unified_bcn_api.h"
+
+/**
+ * send_bcn_buf_ll_cmd_tlv() - prepare and send beacon buffer to fw for LL
+ * @wmi_handle: wmi handle
+ * @param: bcn ll cmd parameter
+ *
+ * Return: QDF_STATUS_SUCCESS for success otherwise failure
+ */
+static QDF_STATUS send_bcn_buf_ll_cmd_tlv(
+		wmi_unified_t wmi_handle,
+		wmi_bcn_send_from_host_cmd_fixed_param *param)
+{
+	wmi_bcn_send_from_host_cmd_fixed_param *cmd;
+	wmi_buf_t wmi_buf;
+	QDF_STATUS ret;
+
+	wmi_buf = wmi_buf_alloc(wmi_handle, sizeof(*cmd));
+	if (!wmi_buf)
+		return QDF_STATUS_E_FAILURE;
+
+	cmd = (wmi_bcn_send_from_host_cmd_fixed_param *)wmi_buf_data(wmi_buf);
+	WMITLV_SET_HDR(&cmd->tlv_header,
+		       WMITLV_TAG_STRUC_wmi_bcn_send_from_host_cmd_fixed_param,
+		       WMITLV_GET_STRUCT_TLVLEN
+			       (wmi_bcn_send_from_host_cmd_fixed_param));
+	cmd->vdev_id = param->vdev_id;
+	cmd->data_len = param->data_len;
+	cmd->frame_ctrl = param->frame_ctrl;
+	cmd->frag_ptr = param->frag_ptr;
+	cmd->dtim_flag = param->dtim_flag;
+
+	wmi_mtrace(WMI_PDEV_SEND_BCN_CMDID, cmd->vdev_id, 0);
+	ret = wmi_unified_cmd_send(wmi_handle, wmi_buf, sizeof(*cmd),
+				   WMI_PDEV_SEND_BCN_CMDID);
+
+	if (QDF_IS_STATUS_ERROR(ret)) {
+		WMI_LOGE("Failed to send WMI_PDEV_SEND_BCN_CMDID command");
+		wmi_buf_free(wmi_buf);
+	}
+
+	return ret;
+}
+
+void wmi_bcn_attach_tlv(wmi_unified_t wmi_handle)
+{
+	struct wmi_ops *ops = wmi_handle->ops;
+
+	ops->send_bcn_buf_ll_cmd = send_bcn_buf_ll_cmd_tlv;
+}
diff --git a/wmi/src/wmi_unified_tlv.c b/wmi/src/wmi_unified_tlv.c
index dc5bfb9..f2bd4a6 100644
--- a/wmi/src/wmi_unified_tlv.c
+++ b/wmi/src/wmi_unified_tlv.c
@@ -3942,49 +3942,6 @@
 	return status;
 }
 
-#ifdef CONFIG_MCL
-/**
- * send_bcn_buf_ll_cmd_tlv() - prepare and send beacon buffer to fw for LL
- * @wmi_handle: wmi handle
- * @param: bcn ll cmd parameter
- *
- * Return: QDF_STATUS_SUCCESS for success otherwise failure
- */
-static QDF_STATUS send_bcn_buf_ll_cmd_tlv(wmi_unified_t wmi_handle,
-			wmi_bcn_send_from_host_cmd_fixed_param *param)
-{
-	wmi_bcn_send_from_host_cmd_fixed_param *cmd;
-	wmi_buf_t wmi_buf;
-	QDF_STATUS ret;
-
-	wmi_buf = wmi_buf_alloc(wmi_handle, sizeof(*cmd));
-	if (!wmi_buf)
-		return QDF_STATUS_E_FAILURE;
-
-	cmd = (wmi_bcn_send_from_host_cmd_fixed_param *) wmi_buf_data(wmi_buf);
-	WMITLV_SET_HDR(&cmd->tlv_header,
-		       WMITLV_TAG_STRUC_wmi_bcn_send_from_host_cmd_fixed_param,
-		       WMITLV_GET_STRUCT_TLVLEN
-			       (wmi_bcn_send_from_host_cmd_fixed_param));
-	cmd->vdev_id = param->vdev_id;
-	cmd->data_len = param->data_len;
-	cmd->frame_ctrl = param->frame_ctrl;
-	cmd->frag_ptr = param->frag_ptr;
-	cmd->dtim_flag = param->dtim_flag;
-
-	wmi_mtrace(WMI_PDEV_SEND_BCN_CMDID, cmd->vdev_id, 0);
-	ret = wmi_unified_cmd_send(wmi_handle, wmi_buf, sizeof(*cmd),
-				      WMI_PDEV_SEND_BCN_CMDID);
-
-	if (QDF_IS_STATUS_ERROR(ret)) {
-		WMI_LOGE("Failed to send WMI_PDEV_SEND_BCN_CMDID command");
-		wmi_buf_free(wmi_buf);
-	}
-
-	return ret;
-}
-#endif /* CONFIG_MCL */
-
 /**
  * send_process_update_edca_param_cmd_tlv() - update EDCA params
  * @wmi_handle: wmi handle
@@ -11808,9 +11765,6 @@
 	.send_snr_request_cmd = send_snr_request_cmd_tlv,
 	.send_snr_cmd = send_snr_cmd_tlv,
 	.send_link_status_req_cmd = send_link_status_req_cmd_tlv,
-#ifdef CONFIG_MCL
-	.send_bcn_buf_ll_cmd = send_bcn_buf_ll_cmd_tlv,
-#endif
 #if !defined(REMOVE_PKT_LOG) && defined(FEATURE_PKTLOG)
 	.send_pktlog_wmi_send_cmd = send_pktlog_wmi_send_cmd_tlv,
 #endif
@@ -12647,6 +12601,7 @@
 	wmi_dbr_attach_tlv(wmi_handle);
 	wmi_atf_attach_tlv(wmi_handle);
 	wmi_ap_attach_tlv(wmi_handle);
+	wmi_bcn_attach_tlv(wmi_handle);
 	wmi_ocb_attach_tlv(wmi_handle);
 	wmi_nan_attach_tlv(wmi_handle);
 	wmi_p2p_attach_tlv(wmi_handle);