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);