mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-08 04:42:04 -04:00
Merge "disp: msm: sde: add reg log minidump partition"
This commit is contained in:
commit
ba930012ea
3 changed files with 28 additions and 0 deletions
|
|
@ -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)
|
||||
|
|
@ -856,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");
|
||||
|
|
@ -986,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");
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
#include <stdarg.h>
|
||||
#include <linux/debugfs.h>
|
||||
#include <linux/list.h>
|
||||
#include <soc/qcom/minidump.h>
|
||||
|
||||
/* 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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
||||
|
|
@ -240,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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue