summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHuaibin Yang <huaibiny@codeaurora.org>2014-10-29 16:14:38 -0700
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 20:38:49 -0700
commitebba7cdddeada4eca01522ea8fc9c741a70a4216 (patch)
tree2fa392180b3ebde7ac9a900245dc713471132da4
parent53f3da50509b29e608d0382e1cf5a9a21c59017b (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.c67
-rw-r--r--drivers/video/fbdev/msm/mdss_debug.h3
-rw-r--r--drivers/video/fbdev/msm/mdss_debug_xlog.c67
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();