qcacmn: Add umac support for CFR

Add UMAC support for CFR module.

CRs-Fixed: 2372061
Change-Id: Idf5991d2cb43e8165ae4eed12d675f1039f4bc77
diff --git a/umac/cmn_services/inc/wlan_cmn.h b/umac/cmn_services/inc/wlan_cmn.h
index 60f0740..f0a6d83 100644
--- a/umac/cmn_services/inc/wlan_cmn.h
+++ b/umac/cmn_services/inc/wlan_cmn.h
@@ -306,6 +306,7 @@
 	WLAN_UMAC_COMP_CP_STATS           = 27,
 	WLAN_UMAC_COMP_ACTION_OUI         = 28,
 	WLAN_UMAC_COMP_FWOL               = 29,
+	WLAN_UMAC_COMP_CFR                = 30,
 	WLAN_UMAC_COMP_ID_MAX,
 };
 
diff --git a/umac/cmn_services/obj_mgr/inc/wlan_objmgr_cmn.h b/umac/cmn_services/obj_mgr/inc/wlan_objmgr_cmn.h
index 8f15a57..fcc16dd 100644
--- a/umac/cmn_services/obj_mgr/inc/wlan_objmgr_cmn.h
+++ b/umac/cmn_services/obj_mgr/inc/wlan_objmgr_cmn.h
@@ -286,6 +286,7 @@
 	WLAN_TGT_IF_DP_PEER_REF_ID = 45,
 	WLAN_MLME_SER_IF_ID        = 46,
 	WLAN_SCHEDULER_ID          = 47,
+	WLAN_CFR_ID                = 48,
 	WLAN_REF_ID_MAX,
 } wlan_objmgr_ref_dbgid;
 
@@ -347,6 +348,7 @@
 					"WLAN_TGT_IF_DP_PEER_REF_ID",
 					"WLAN_MLME_SER_IF_ID",
 					"WLAN_SCHEDULER_ID",
+					"WLAN_CFR_ID",
 					"WLAN_REF_ID_MAX"};
 
 	return (char *)strings[id];
diff --git a/umac/global_umac_dispatcher/lmac_if/inc/wlan_lmac_if_def.h b/umac/global_umac_dispatcher/lmac_if/inc/wlan_lmac_if_def.h
index 7462940..a7d32c8 100644
--- a/umac/global_umac_dispatcher/lmac_if/inc/wlan_lmac_if_def.h
+++ b/umac/global_umac_dispatcher/lmac_if/inc/wlan_lmac_if_def.h
@@ -47,6 +47,10 @@
 #include "wlan_crypto_global_def.h"
 #endif
 
+#ifdef WLAN_CFR_ENABLE
+#include "wlan_cfr_utils_api.h"
+#endif
+
 #include <wlan_dfs_tgt_api.h>
 #include <wlan_dfs_ioctl.h>
 
@@ -456,6 +460,30 @@
 
 #endif
 
+#ifdef WLAN_CFR_ENABLE
+/**
+ * struct wlan_lmac_if_cfr_tx_ops - CFR specific tx function pointers
+ * @cfr_init_pdev: Initialize CFR
+ * @cfr_deinit_pdev: De-initialize CFR
+ * @cfr_enable_cfr_timer: Function to enable CFR timer
+ * @cfr_start_capture: Function to start CFR capture
+ * @cfr_stop_capture: Function to stop CFR capture
+ */
+struct wlan_lmac_if_cfr_tx_ops {
+	int (*cfr_init_pdev)(struct wlan_objmgr_psoc *psoc,
+			     struct wlan_objmgr_pdev *pdev);
+	int (*cfr_deinit_pdev)(struct wlan_objmgr_psoc *psoc,
+			       struct wlan_objmgr_pdev *pdev);
+	int (*cfr_enable_cfr_timer)(struct wlan_objmgr_pdev *pdev,
+				    uint32_t cfr_timer);
+	int (*cfr_start_capture)(struct wlan_objmgr_pdev *pdev,
+				 struct wlan_objmgr_peer *peer,
+				 struct cfr_capture_params *params);
+	int (*cfr_stop_capture)(struct wlan_objmgr_pdev *pdev,
+				struct wlan_objmgr_peer *peer);
+};
+#endif /* WLAN_CFR_ENABLE */
+
 #ifdef WLAN_CONV_SPECTRAL_ENABLE
 struct wmi_spectral_cmd_ops;
 /**
@@ -819,6 +847,10 @@
 	struct wlan_lmac_if_sa_api_tx_ops sa_api_tx_ops;
 #endif
 
+#ifdef WLAN_CFR_ENABLE
+	struct wlan_lmac_if_cfr_tx_ops cfr_tx_ops;
+#endif
+
 #ifdef WLAN_CONV_SPECTRAL_ENABLE
 	struct wlan_lmac_if_sptrl_tx_ops sptrl_tx_ops;
 #endif