From 808949e35c359ef4e36b282b57be18f2c2031b95 Mon Sep 17 00:00:00 2001 From: Veera Sundaram Sankaran Date: Mon, 26 Apr 2021 09:46:36 -0700 Subject: [PATCH] disp: msm: avoid logging event logs by default in sde_dbg_dump Avoid printing the eventlogs in kernel logs during display debug logging through sde_dbg_dump to avoid excessive logging. Add a debugfs node to control in-mem/in-log mode of eventlogs to help in debugging. Change-Id: If98b129cafa9d29eccd0c44285f1058876f3e1ea Signed-off-by: Veera Sundaram Sankaran --- msm/sde_dbg.c | 7 +++---- msm/sde_dbg.h | 7 +++++-- msm/sde_dbg_evtlog.c | 3 ++- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/msm/sde_dbg.c b/msm/sde_dbg.c index 952f641e45..ba3eaace6b 100644 --- a/msm/sde_dbg.c +++ b/msm/sde_dbg.c @@ -22,8 +22,6 @@ #define SDE_DBG_BASE_MAX 10 #define DEFAULT_PANIC 1 -#define DEFAULT_REGDUMP SDE_DBG_DUMP_IN_MEM -#define DEFAULT_DBGBUS_DUMP SDE_DBG_DUMP_IN_MEM #define DEFAULT_BASE_REG_CNT DEFAULT_MDSS_HW_BLOCK_SIZE #define GROUP_BYTES 4 #define ROW_BYTES 16 @@ -2082,6 +2080,7 @@ int sde_dbg_debugfs_register(struct device *dev) debugfs_create_file("recovery_reg", 0400, debugfs_root, NULL, &sde_recovery_reg_fops); debugfs_create_u32("enable", 0600, debugfs_root, &(sde_dbg_base.evtlog->enable)); + debugfs_create_u32("evtlog_dump", 0600, debugfs_root, &(sde_dbg_base.evtlog->dump_mode)); debugfs_create_u32("panic", 0600, debugfs_root, &sde_dbg_base.panic_on_err); debugfs_create_u32("reg_dump", 0600, debugfs_root, &sde_dbg_base.enable_reg_dump); debugfs_create_u32("dbgbus_dump", 0600, debugfs_root, &sde_dbg_base.enable_dbgbus_dump); @@ -2219,8 +2218,8 @@ int sde_dbg_init(struct device *dev) INIT_WORK(&sde_dbg_base.dump_work, _sde_dump_work); sde_dbg_base.work_panic = false; sde_dbg_base.panic_on_err = DEFAULT_PANIC; - sde_dbg_base.enable_reg_dump = DEFAULT_REGDUMP; - sde_dbg_base.enable_dbgbus_dump = DEFAULT_DBGBUS_DUMP; + sde_dbg_base.enable_reg_dump = SDE_DBG_DEFAULT_DUMP_MODE; + sde_dbg_base.enable_dbgbus_dump = SDE_DBG_DEFAULT_DUMP_MODE; sde_dbg_base.dump_blk_mask = SDE_DBG_BUILT_IN_ALL; memset(&sde_dbg_base.regbuf, 0, sizeof(sde_dbg_base.regbuf)); diff --git a/msm/sde_dbg.h b/msm/sde_dbg.h index c4d88b9441..3f287223c3 100644 --- a/msm/sde_dbg.h +++ b/msm/sde_dbg.h @@ -72,6 +72,9 @@ enum sde_dbg_dump_context { SDE_DBG_DUMP_CLK_ENABLED_CTX, }; +/* default dump mode for eventlogs, reg-dump & debugbus-dump */ +#define SDE_DBG_DEFAULT_DUMP_MODE SDE_DBG_DUMP_IN_MEM + /* * Define blocks for register write logging. */ @@ -100,8 +103,7 @@ enum sde_dbg_dump_context { */ #define SDE_REG_LOG_RSCC 33 -#define SDE_EVTLOG_DEFAULT_ENABLE (SDE_EVTLOG_CRITICAL | SDE_EVTLOG_IRQ | \ - SDE_EVTLOG_EXTERNAL) +#define SDE_EVTLOG_DEFAULT_ENABLE (SDE_EVTLOG_CRITICAL | SDE_EVTLOG_IRQ | SDE_EVTLOG_EXTERNAL) /* * evtlog will print this number of entries when it is called through @@ -148,6 +150,7 @@ struct sde_dbg_evtlog { u32 curr; u32 next; u32 enable; + u32 dump_mode; spinlock_t spin_lock; struct list_head filter_list; }; diff --git a/msm/sde_dbg_evtlog.c b/msm/sde_dbg_evtlog.c index 484480b8ea..75b8479d8d 100644 --- a/msm/sde_dbg_evtlog.c +++ b/msm/sde_dbg_evtlog.c @@ -210,7 +210,7 @@ void sde_evtlog_dump_all(struct sde_dbg_evtlog *evtlog) char buf[SDE_EVTLOG_BUF_MAX]; bool update_last_entry = true; - if (!evtlog) + if (!evtlog || !(evtlog->dump_mode & SDE_DBG_DUMP_IN_LOG)) return; while (sde_evtlog_dump_to_buffer(evtlog, buf, sizeof(buf), @@ -230,6 +230,7 @@ struct sde_dbg_evtlog *sde_evtlog_init(void) spin_lock_init(&evtlog->spin_lock); evtlog->enable = SDE_EVTLOG_DEFAULT_ENABLE; + evtlog->dump_mode = SDE_DBG_DEFAULT_DUMP_MODE; INIT_LIST_HEAD(&evtlog->filter_list);