diff options
| author | Huaibin Yang <huaibiny@codeaurora.org> | 2014-10-29 16:14:38 -0700 |
|---|---|---|
| committer | David Keitel <dkeitel@codeaurora.org> | 2016-03-23 20:38:49 -0700 |
| commit | ebba7cdddeada4eca01522ea8fc9c741a70a4216 (patch) | |
| tree | 2fa392180b3ebde7ac9a900245dc713471132da4 | |
| parent | 53f3da50509b29e608d0382e1cf5a9a21c59017b (diff) | |
msm: mdss: debugfs: xlog: move reg dump function to xlog
reg dump func is specifically used by xlog, so it should be static in
xlog file.
Change-Id: I14570e174b215d7ea5f77f0b333f65956b549222
Signed-off-by: Huaibin Yang <huaibiny@codeaurora.org>
Signed-off-by: Ingrid Gallardo <ingridg@codeaurora.org>
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_debug.c | 67 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_debug.h | 3 | ||||
| -rw-r--r-- | drivers/video/fbdev/msm/mdss_debug_xlog.c | 67 |
3 files changed, 67 insertions, 70 deletions
diff --git a/drivers/video/fbdev/msm/mdss_debug.c b/drivers/video/fbdev/msm/mdss_debug.c index 7a9e9ede1577..a5cbed3864c6 100644 --- a/drivers/video/fbdev/msm/mdss_debug.c +++ b/drivers/video/fbdev/msm/mdss_debug.c @@ -663,73 +663,6 @@ int mdss_debugfs_remove(struct mdss_data_type *mdata) return 0; } -void mdss_dump_reg(struct mdss_debug_base *dbg, u32 reg_dump_flag) -{ - char *addr; - u32 *dump_addr = NULL; - int len; - int i; - bool in_log, in_mem; - - if (!dbg || !dbg->base) { - pr_err("dbg base is null!\n"); - return; - } - - in_log = (reg_dump_flag & MDSS_REG_DUMP_IN_LOG); - in_mem = (reg_dump_flag & MDSS_REG_DUMP_IN_MEM); - - addr = dbg->base; - len = dbg->max_offset; - - if (len % 16) - len += 16; - len /= 16; - - pr_info("reg_dump_flag=%d in_log=%d in_mem=%d\n", reg_dump_flag, in_log, - in_mem); - pr_info("=========%s DUMP=========\n", dbg->name); - - if (in_mem) { - if (!dbg->reg_dump) - dbg->reg_dump = kzalloc(len * 16, GFP_KERNEL); - - if (dbg->reg_dump) { - dump_addr = dbg->reg_dump; - pr_info("start_addr:%p end_addr:%p reg_addr=%p\n", - dump_addr, dump_addr + (u32)len * 16, - addr); - } else { - in_mem = false; - pr_err("reg_dump: kzalloc fails!\n"); - } - } - - mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_ON); - for (i = 0; i < len; i++) { - u32 x0, x4, x8, xc; - - x0 = readl_relaxed(addr+0x0); - x4 = readl_relaxed(addr+0x4); - x8 = readl_relaxed(addr+0x8); - xc = readl_relaxed(addr+0xc); - - if (in_log) - pr_info("%p : %08x %08x %08x %08x\n", addr, x0, x4, x8, - xc); - - if (dump_addr && in_mem) { - dump_addr[i*4] = x0; - dump_addr[i*4 + 1] = x4; - dump_addr[i*4 + 2] = x8; - dump_addr[i*4 + 3] = xc; - } - - addr += 16; - } - mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_OFF); -} - int vsync_count; static struct mdss_mdp_misr_map { u32 ctrl_reg; diff --git a/drivers/video/fbdev/msm/mdss_debug.h b/drivers/video/fbdev/msm/mdss_debug.h index 77678ccad118..0ab74dea7ba9 100644 --- a/drivers/video/fbdev/msm/mdss_debug.h +++ b/drivers/video/fbdev/msm/mdss_debug.h @@ -111,7 +111,6 @@ void mdss_misr_crc_collect(struct mdss_data_type *mdata, int block_id); int mdss_create_xlog_debug(struct mdss_debug_data *mdd); void mdss_xlog(const char *name, int line, int flag, ...); -void mdss_dump_reg(struct mdss_debug_base *dbg, u32 reg_dump_flag); void mdss_xlog_tout_handler_default(const char *name, ...); int mdss_xlog_tout_handler_iommu(struct iommu_domain *domain, struct device *dev, unsigned long iova, int flags, void *token); @@ -136,8 +135,6 @@ static inline void mdss_misr_crc_collect(struct mdss_data_type *mdata, static inline int create_xlog_debug(struct mdss_data_type *mdata) { return 0; } static inline void mdss_xlog_dump(void) { } -static inline void mdss_dump_reg(struct mdss_debug_base *dbg, - u32 reg_dump_flag) { } static inline void mdss_xlog(const char *name, int line, int flag...) { } static inline void mdss_dsi_debug_check_te(struct mdss_panel_data *pdata) { } static inline void mdss_xlog_tout_handler_default(const char *name, ...) { } diff --git a/drivers/video/fbdev/msm/mdss_debug_xlog.c b/drivers/video/fbdev/msm/mdss_debug_xlog.c index 2b277239af85..4c52f7f41223 100644 --- a/drivers/video/fbdev/msm/mdss_debug_xlog.c +++ b/drivers/video/fbdev/msm/mdss_debug_xlog.c @@ -175,6 +175,73 @@ static void mdss_xlog_dump_all(void) } } +static void mdss_dump_reg(struct mdss_debug_base *dbg, u32 reg_dump_flag) +{ + char *addr; + u32 *dump_addr = NULL; + int len; + int i; + bool in_log, in_mem; + + if (!dbg || !dbg->base) { + pr_err("dbg base is null!\n"); + return; + } + + in_log = (reg_dump_flag & MDSS_REG_DUMP_IN_LOG); + in_mem = (reg_dump_flag & MDSS_REG_DUMP_IN_MEM); + + addr = dbg->base; + len = dbg->max_offset; + + if (len % 16) + len += 16; + len /= 16; + + pr_info("reg_dump_flag=%d in_log=%d in_mem=%d\n", reg_dump_flag, in_log, + in_mem); + pr_info("%s:=========%s DUMP=========\n", __func__, dbg->name); + + if (in_mem) { + if (!dbg->reg_dump) + dbg->reg_dump = kzalloc(len * 16, GFP_KERNEL); + + if (dbg->reg_dump) { + dump_addr = dbg->reg_dump; + pr_info("start_addr:%p end_addr:%p reg_addr=%p\n", + dump_addr, dump_addr + (u32)len * 16, + addr); + } else { + in_mem = false; + pr_err("reg_dump: kzalloc fails!\n"); + } + } + + mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_ON); + for (i = 0; i < len; i++) { + u32 x0, x4, x8, xc; + + x0 = readl_relaxed(addr+0x0); + x4 = readl_relaxed(addr+0x4); + x8 = readl_relaxed(addr+0x8); + xc = readl_relaxed(addr+0xc); + + if (in_log) + pr_info("%p : %08x %08x %08x %08x\n", addr, x0, x4, x8, + xc); + + if (dump_addr && in_mem) { + dump_addr[i*4] = x0; + dump_addr[i*4 + 1] = x4; + dump_addr[i*4 + 2] = x8; + dump_addr[i*4 + 3] = xc; + } + + addr += 16; + } + mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_OFF); +} + static void mdss_dump_reg_by_blk(const char *blk_name) { struct mdss_data_type *mdata = mdss_mdp_get_mdata(); |
