diff --git a/Kbuild b/Kbuild index ee5dbf1a6e..df7524d8d9 100644 --- a/Kbuild +++ b/Kbuild @@ -540,6 +540,9 @@ ifeq ($(CONFIG_LITHIUM), y) 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_OBJS := $(HDD_SRC_DIR)/wlan_hdd_assoc.o \ $(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 @@ ifeq ($(CONFIG_WLAN_FEATURE_DSRC), y) 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_FEATURE_P2P_DEBUG) += -DWLAN_FEATURE_P2P_DEBUG 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 17488e41a2..7206955f14 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_enable(struct wlan_objmgr_psoc *psoc); */ 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 1bb4f57794..1cd1f083ac 100644 --- a/core/hdd/src/wlan_hdd_main.c +++ b/core/hdd/src/wlan_hdd_main.c @@ -10483,6 +10483,7 @@ done: } +#ifdef WLAN_FEATURE_HDD_MEMDUMP_ENABLE /** * hdd_state_info_dump() - prints state information of hdd layer * @buf: buffer pointer @@ -10548,6 +10549,11 @@ static void hdd_register_debug_callback(void) { 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 d59c9de49e..1262dfa6df 100644 --- a/core/mac/src/pe/lim/lim_api.c +++ b/core/mac/src/pe/lim/lim_api.c @@ -682,6 +682,7 @@ void lim_cleanup(tpAniSirGlobal pMac) 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 @@ static void lim_register_debug_callback(void) { 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 cc0dfa0fa1..2bf204b348 100644 --- a/core/sme/src/common/sme_api.c +++ b/core/sme/src/common/sme_api.c @@ -588,6 +588,7 @@ QDF_STATUS sme_ser_cmd_callback(void *buf, return status; } +#ifdef WLAN_FEATURE_HDD_MEMDUMP_ENABLE /** * sme_get_sessionid_from_activelist() - gets session id * @mac: mac context @@ -683,7 +684,11 @@ static void sme_register_debug_callback(void) { 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 8340e5a3dc..c02d370c72 100644 --- a/core/wma/src/wma_main.c +++ b/core/wma/src/wma_main.c @@ -2056,6 +2056,7 @@ static void wma_shutdown_notifier_cb(void *priv) 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 @@ static void wma_register_debug_callback(void) { 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