From 7ad0876fa7ade9097dabac18cfd7bf331af76285 Mon Sep 17 00:00:00 2001 From: Andhavarapu Karthik Date: Thu, 11 Mar 2021 16:04:25 +0530 Subject: [PATCH 1/3] disp: msm: sde: add evt log minidump partition Changes are made to add wrapper function to add a minidump partition. Also, to add evt log to minidump. Change-Id: I1204a965bab9db72cb3d381a2817dbe8ef723c66 Signed-off-by: Andhavarapu Karthik --- msm/sde_dbg.c | 12 ++++++++++++ msm/sde_dbg.h | 3 +++ msm/sde_dbg_evtlog.c | 4 ++++ 3 files changed, 19 insertions(+) diff --git a/msm/sde_dbg.c b/msm/sde_dbg.c index eb85c0e37e7e..31a9e26ef21c 100644 --- a/msm/sde_dbg.c +++ b/msm/sde_dbg.c @@ -300,6 +300,18 @@ struct sde_dbg_evtlog *sde_dbg_base_evtlog; /* sde_dbg_base_reglog - global pointer to main sde reg log for macro use */ struct sde_dbg_reglog *sde_dbg_base_reglog; +u32 sde_mini_dump_add_region(const char *name, u32 size, void *virt_addr) +{ + struct md_region md_entry; + + strlcpy(md_entry.name, name, sizeof(md_entry.name)); + md_entry.virt_addr = (uintptr_t)virt_addr; + md_entry.phys_addr = virt_to_phys(virt_addr); + md_entry.size = size; + + return msm_minidump_add_region(&md_entry); +} + static void _sde_debug_bus_xbar_dump(void __iomem *mem_base, struct sde_debug_bus_entry *entry, u32 val, u32 block_id_off, u32 test_id_off) diff --git a/msm/sde_dbg.h b/msm/sde_dbg.h index 9efa19436fbb..4e3dbdbb9b7b 100644 --- a/msm/sde_dbg.h +++ b/msm/sde_dbg.h @@ -9,6 +9,7 @@ #include #include #include +#include /* select an uncommon hex value for the limiter */ #define SDE_EVTLOG_DATA_LIMITER (0xC0DEBEEF) @@ -248,6 +249,8 @@ extern struct sde_dbg_reglog *sde_dbg_base_reglog; #define SDE_DBG_CTRL(...) sde_dbg_ctrl(__func__, ##__VA_ARGS__, \ SDE_DBG_DUMP_DATA_LIMITER) +u32 sde_mini_dump_add_region(const char *name, u32 size, void *virt_addr); + /** * sde_evtlog_init - allocate a new event log object * Returns: evtlog or -ERROR diff --git a/msm/sde_dbg_evtlog.c b/msm/sde_dbg_evtlog.c index 5724d4cdb5e1..91c10f4dde35 100644 --- a/msm/sde_dbg_evtlog.c +++ b/msm/sde_dbg_evtlog.c @@ -223,6 +223,10 @@ struct sde_dbg_evtlog *sde_evtlog_init(void) if (!evtlog) return ERR_PTR(-ENOMEM); + if (sde_mini_dump_add_region("evt_log", sizeof(*evtlog), + evtlog) < 0) + pr_err("minidump add region failed for evtlog\n"); + spin_lock_init(&evtlog->spin_lock); evtlog->enable = SDE_EVTLOG_DEFAULT_ENABLE; From 361a8e335117c72dc2bc2076d9f33ad2dcf41a61 Mon Sep 17 00:00:00 2001 From: Andhavarapu Karthik Date: Tue, 16 Mar 2021 12:12:31 +0530 Subject: [PATCH 2/3] disp: msm: sde: add sde and vbif debug bus to minidump Changes are made to add sde and vbif debug bus to minidump. Change-Id: I8fc615c57e14bf2aa0b814ebda2270cd3124c794 Signed-off-by: Andhavarapu Karthik --- msm/sde_dbg.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/msm/sde_dbg.c b/msm/sde_dbg.c index 31a9e26ef21c..89715d376f24 100644 --- a/msm/sde_dbg.c +++ b/msm/sde_dbg.c @@ -868,6 +868,9 @@ static void _sde_dbg_dump_sde_dbg_bus(struct sde_dbg_sde_debug_bus *bus) dev_info(sde_dbg_base.dev, "%s: start_addr:0x%pK len:0x%x\n", __func__, dump_addr, list_size); + if (sde_mini_dump_add_region("sde_dbgbus", list_size, + *dump_mem) < 0) + pr_err("minidump add sde debug bus failed\n"); } else { in_mem = false; pr_err("dump_mem: allocation fails\n"); @@ -998,6 +1001,9 @@ static void _sde_dbg_dump_vbif_dbg_bus(struct sde_dbg_vbif_debug_bus *bus) dev_info(sde_dbg_base.dev, "%s: start_addr:0x%pK len:0x%x\n", __func__, dump_addr, list_size); + if (sde_mini_dump_add_region("vbif_dbgbus", list_size, + *dump_mem) < 0) + pr_err("minidump add vbif debug bus failed\n"); } else { in_mem = false; pr_err("dump_mem: allocation fails\n"); From ae9f6d8dce37d9c2e28b9dfa46588b486ba1f5bd Mon Sep 17 00:00:00 2001 From: Andhavarapu Karthik Date: Tue, 16 Mar 2021 12:56:34 +0530 Subject: [PATCH 3/3] disp: msm: sde: add reg log minidump partition Changes are made to add reg log to minidump. Change-Id: I703075ae22cfa0d987e4bb51ebc28dcdf13baa46 Signed-off-by: Andhavarapu Karthik --- msm/sde_dbg_evtlog.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/msm/sde_dbg_evtlog.c b/msm/sde_dbg_evtlog.c index 91c10f4dde35..21ae067957c5 100644 --- a/msm/sde_dbg_evtlog.c +++ b/msm/sde_dbg_evtlog.c @@ -244,6 +244,9 @@ struct sde_dbg_reglog *sde_reglog_init(void) return ERR_PTR(-ENOMEM); atomic64_set(®log->curr, 0); + if (sde_mini_dump_add_region("reg_log", sizeof(*reglog), + reglog) < 0) + pr_err("minidump add region failed for reglog\n"); return reglog; }