qcacmn: Off-chan txrx componentization changes

Add new module id for offchan txrx compotent and call offchan init/deint.

Change-Id: I803925d2dafdbe3800636de4e5ac4ae69c4851d0
CRs-Fixed: 2030050
diff --git a/init_deinit/dispatcher/src/dispatcher_init_deinit.c b/init_deinit/dispatcher/src/dispatcher_init_deinit.c
index 05380ca..b604e77 100644
--- a/init_deinit/dispatcher/src/dispatcher_init_deinit.c
+++ b/init_deinit/dispatcher/src/dispatcher_init_deinit.c
@@ -52,6 +52,9 @@
 #include <wlan_dfs_init_deinit_api.h>
 #endif
 
+#ifdef WLAN_OFFCHAN_TXRX_ENABLE
+#include <wlan_offchan_txrx_api.h>
+#endif
 /**
  * DOC: This file provides various init/deinit trigger point for new
  * components.
@@ -461,6 +464,28 @@
 }
 #endif
 
+#ifdef WLAN_OFFCHAN_TXRX_ENABLE
+static QDF_STATUS dispatcher_offchan_txrx_init(void)
+{
+	return wlan_offchan_txrx_init();
+}
+
+static QDF_STATUS dispatcher_offchan_txrx_deinit(void)
+{
+	return wlan_offchan_txrx_deinit();
+}
+#else
+static QDF_STATUS dispatcher_offchan_txrx_init(void)
+{
+	return QDF_STATUS_SUCCESS;
+}
+
+static QDF_STATUS dispatcher_offchan_txrx_deinit(void)
+{
+	return QDF_STATUS_SUCCESS;
+}
+#endif /*WLAN_OFFCHAN_TXRX_ENABLE*/
+
 QDF_STATUS dispatcher_init(void)
 {
 	if (QDF_STATUS_SUCCESS != wlan_objmgr_global_obj_init())
@@ -508,8 +533,13 @@
 	if (QDF_STATUS_SUCCESS != dispatcher_regulatory_init())
 		goto regulatory_init_fail;
 
+	if (QDF_STATUS_SUCCESS != dispatcher_offchan_txrx_init())
+		goto offchan_init_fail;
+
 	return QDF_STATUS_SUCCESS;
 
+offchan_init_fail:
+	dispatcher_regulatory_deinit();
 regulatory_init_fail:
 	dispatcher_deinit_dfs();
 dfs_init_fail:
@@ -546,6 +576,8 @@
 
 QDF_STATUS dispatcher_deinit(void)
 {
+	QDF_BUG(QDF_STATUS_SUCCESS == dispatcher_offchan_txrx_deinit());
+
 	QDF_BUG(QDF_STATUS_SUCCESS == dispatcher_regulatory_deinit());
 
 	QDF_BUG(QDF_STATUS_SUCCESS == dispatcher_deinit_dfs());
diff --git a/qdf/inc/qdf_types.h b/qdf/inc/qdf_types.h
index d0502da..ca1ee49 100644
--- a/qdf/inc/qdf_types.h
+++ b/qdf/inc/qdf_types.h
@@ -384,6 +384,7 @@
 	QDF_MODULE_ID_CONFIG,
 	QDF_MODULE_ID_REGULATORY,
 	QDF_MODULE_ID_NAN,
+	QDF_MODULE_ID_OFFCHAN_TXRX,
 	QDF_MODULE_ID_ANY,
 	QDF_MODULE_ID_MAX,
 } QDF_MODULE_ID;
diff --git a/qdf/linux/src/qdf_trace.c b/qdf/linux/src/qdf_trace.c
index 07db48d..54aabfa 100644
--- a/qdf/linux/src/qdf_trace.c
+++ b/qdf/linux/src/qdf_trace.c
@@ -1809,6 +1809,7 @@
 	[QDF_MODULE_ID_POLICY_MGR] = {"POLICY_MGR"},
 	[QDF_MODULE_ID_NAN] = {"NAN"},
 	[QDF_MODULE_ID_P2P] = {"P2P"},
+	[QDF_MODULE_ID_OFFCHAN_TXRX] = {"OFFCHAN"},
 	[QDF_MODULE_ID_ANY] = {"ANY"},
 };
 
diff --git a/umac/cmn_services/inc/wlan_cmn.h b/umac/cmn_services/inc/wlan_cmn.h
index f6ed3cb..e5484f1 100644
--- a/umac/cmn_services/inc/wlan_cmn.h
+++ b/umac/cmn_services/inc/wlan_cmn.h
@@ -111,6 +111,7 @@
  * @WLAN_UMAC_COMP_NAN:           Neighbor Aware Networking
  * @WLAN_UMAC_COMP_DFS:           DFS
  * @WLAN_UMAC_COMP_ID_MAX:        Maximum components in UMAC
+ * @WLAN_UMAC_COMP_OFFCHAN_TXRX:  Offchan TxRx
  *
  * This id is static.
  * On Adding new component, new id has to be assigned
@@ -131,6 +132,7 @@
 	WLAN_UMAC_COMP_CRYPTO,
 	WLAN_UMAC_COMP_NAN,
 	WLAN_UMAC_COMP_DFS,
+	WLAN_UMAC_COMP_OFFCHAN_TXRX,
 	WLAN_UMAC_COMP_ID_MAX,
 };