qcacld-3.0: Add hdd memory dump feature flag

Add config flag to enable / disable hdd memory dump feature

Change-Id: Id2994f72b595096459e65ef4da5381d6eb3b476b
CRs-Fixed: 2231695
diff --git a/Kbuild b/Kbuild
index ee5dbf1..df7524d 100644
--- a/Kbuild
+++ b/Kbuild
@@ -540,6 +540,9 @@
 	CONFIG_FEATURE_UNIT_TEST_SUSPEND := y
 endif
 
+#Flag to enable hdd memory dump feature
+CONFIG_FEATURE_HDD_MEMDUMP_ENABLE := y
+
 #Flag to enable/disable WLAN D0-WOW
 ifeq ($(CONFIG_PCI_MSM), y)
 ifeq ($(CONFIG_HIF_PCI), y)
@@ -590,7 +593,6 @@
 		$(HDD_SRC_DIR)/wlan_hdd_hostapd.o \
 		$(HDD_SRC_DIR)/wlan_hdd_ioctl.o \
 		$(HDD_SRC_DIR)/wlan_hdd_main.o \
-		$(HDD_SRC_DIR)/wlan_hdd_memdump.o \
 		$(HDD_SRC_DIR)/wlan_hdd_object_manager.o \
 		$(HDD_SRC_DIR)/wlan_hdd_oemdata.o \
 		$(HDD_SRC_DIR)/wlan_hdd_p2p.o \
@@ -618,6 +620,10 @@
 HDD_OBJS+=	$(HDD_SRC_DIR)/wlan_hdd_ocb.o
 endif
 
+ifeq ($(CONFIG_FEATURE_HDD_MEMDUMP_ENABLE), y)
+HDD_OBJS+=	$(HDD_SRC_DIR)/wlan_hdd_memdump.o
+endif
+
 ifeq ($(CONFIG_WLAN_FEATURE_FIPS), y)
 HDD_OBJS+=	$(HDD_SRC_DIR)/wlan_hdd_fips.o
 endif
@@ -2022,6 +2028,7 @@
 cppflags-$(CONFIG_WLAN_LOGGING_SOCK_SVC) += -DWLAN_LOGGING_SOCK_SVC_ENABLE
 cppflags-$(CONFIG_WLAN_FEATURE_FILS) += -DWLAN_FEATURE_FILS_SK
 cppflags-$(CONFIG_CP_STATS) += -DQCA_SUPPORT_CP_STATS
+cppflags-$(CONFIG_FEATURE_HDD_MEMDUMP_ENABLE) += -DWLAN_FEATURE_HDD_MEMDUMP_ENABLE
 
 ifeq ($(CONFIG_CNSS), y)
 ifeq ($(CONFIG_CNSS_SDIO), y)
diff --git a/core/hdd/inc/wlan_hdd_main.h b/core/hdd/inc/wlan_hdd_main.h
index 17488e4..7206955 100644
--- a/core/hdd/inc/wlan_hdd_main.h
+++ b/core/hdd/inc/wlan_hdd_main.h
@@ -3151,9 +3151,18 @@
  */
 void hdd_component_psoc_disable(struct wlan_objmgr_psoc *psoc);
 
+#ifdef WLAN_FEATURE_HDD_MEMDUMP_ENABLE
 int hdd_driver_memdump_init(void);
 void hdd_driver_memdump_deinit(void);
-
+#else /* WLAN_FEATURE_HDD_MEMDUMP_ENABLE */
+static inline int hdd_driver_memdump_init(void)
+{
+	return 0;
+}
+static inline void hdd_driver_memdump_deinit(void)
+{
+}
+#endif /* WLAN_FEATURE_HDD_MEMDUMP_ENABLE */
 /**
  * hdd_is_cli_iface_up() - check if there is any cli iface up
  * @hdd_ctx: HDD context
diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c
index 1bb4f57..1cd1f08 100644
--- a/core/hdd/src/wlan_hdd_main.c
+++ b/core/hdd/src/wlan_hdd_main.c
@@ -10483,6 +10483,7 @@
 }
 
 
+#ifdef WLAN_FEATURE_HDD_MEMDUMP_ENABLE
 /**
  * hdd_state_info_dump() - prints state information of hdd layer
  * @buf: buffer pointer
@@ -10548,6 +10549,11 @@
 {
 	qdf_register_debug_callback(QDF_MODULE_ID_HDD, &hdd_state_info_dump);
 }
+#else /* WLAN_FEATURE_HDD_MEMDUMP_ENABLE */
+static void hdd_register_debug_callback(void)
+{
+}
+#endif /* WLAN_FEATURE_HDD_MEMDUMP_ENABLE */
 
 /*
  * wlan_init_bug_report_lock() - Initialize bug report lock
diff --git a/core/mac/src/pe/lim/lim_api.c b/core/mac/src/pe/lim/lim_api.c
index d59c9de..1262dfa 100644
--- a/core/mac/src/pe/lim/lim_api.c
+++ b/core/mac/src/pe/lim/lim_api.c
@@ -682,6 +682,7 @@
 	ucfg_scan_unregister_requester(pMac->psoc, pMac->lim.req_id);
 } /*** end lim_cleanup() ***/
 
+#ifdef WLAN_FEATURE_HDD_MEMDUMP_ENABLE
 /**
  * lim_state_info_dump() - print state information of lim layer
  * @buf: buffer pointer
@@ -736,7 +737,11 @@
 {
 	qdf_register_debug_callback(QDF_MODULE_ID_PE, &lim_state_info_dump);
 }
-
+#else /* WLAN_FEATURE_HDD_MEMDUMP_ENABLE */
+static void lim_register_debug_callback(void)
+{
+}
+#endif /* WLAN_FEATURE_HDD_MEMDUMP_ENABLE */
 static void lim_nan_register_callbacks(tpAniSirGlobal mac_ctx)
 {
 	struct nan_callbacks cb_obj = {0};
diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c
index cc0dfa0..2bf204b 100644
--- a/core/sme/src/common/sme_api.c
+++ b/core/sme/src/common/sme_api.c
@@ -588,6 +588,7 @@
 	return status;
 }
 
+#ifdef WLAN_FEATURE_HDD_MEMDUMP_ENABLE
 /**
  * sme_get_sessionid_from_activelist() - gets session id
  * @mac: mac context
@@ -683,7 +684,11 @@
 {
 	qdf_register_debug_callback(QDF_MODULE_ID_SME, &sme_state_info_dump);
 }
-
+#else /* WLAN_FEATURE_HDD_MEMDUMP_ENABLE */
+static void sme_register_debug_callback(void)
+{
+}
+#endif /* WLAN_FEATURE_HDD_MEMDUMP_ENABLE */
 
 /* Global APIs */
 
diff --git a/core/wma/src/wma_main.c b/core/wma/src/wma_main.c
index 8340e5a..c02d370 100644
--- a/core/wma/src/wma_main.c
+++ b/core/wma/src/wma_main.c
@@ -2056,6 +2056,7 @@
 
 struct wma_version_info g_wmi_version_info;
 
+#ifdef WLAN_FEATURE_HDD_MEMDUMP_ENABLE
 /**
  * wma_state_info_dump() - prints state information of wma layer
  * @buf: buffer pointer
@@ -2282,7 +2283,11 @@
 {
 	qdf_register_debug_callback(QDF_MODULE_ID_WMA, &wma_state_info_dump);
 }
-
+#else /* WLAN_FEATURE_HDD_MEMDUMP_ENABLE */
+static void wma_register_debug_callback(void)
+{
+}
+#endif /* WLAN_FEATURE_HDD_MEMDUMP_ENABLE */
 /**
  * wma_register_tx_ops_handler() - register tx_ops of southbound
  * @tx_ops:  tx_ops pointer in southbound