summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Salido-Moreno <adrianm@codeaurora.org>2015-04-23 18:16:41 -0700
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 20:40:50 -0700
commitea86d8e5a5d561a6db9b534d70b60e79a935ca74 (patch)
tree45b20b25b9e26792346c46a29e62f7a2227b03c7
parent14b7eeba1dfa6bc24cc04f460cce538b80c61e7e (diff)
mdss: debug: add panel timings to mdp dump
Provide info about current panel timings when dumping mdp debugfs data. Change-Id: Id2b481797e86131e8d32d7fc59531964f0a21c0a Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp_debug.c42
1 files changed, 40 insertions, 2 deletions
diff --git a/drivers/video/fbdev/msm/mdss_mdp_debug.c b/drivers/video/fbdev/msm/mdss_mdp_debug.c
index 97cb22742d03..a07b0e3bea4c 100644
--- a/drivers/video/fbdev/msm/mdss_mdp_debug.c
+++ b/drivers/video/fbdev/msm/mdss_mdp_debug.c
@@ -159,6 +159,38 @@ static void __dump_buf_data(struct seq_file *s, struct msm_fb_data_type *mfd)
mutex_unlock(&mdp5_data->list_lock);
}
+static void __dump_timings(struct seq_file *s, struct mdss_mdp_ctl *ctl)
+{
+ struct mdss_panel_info *pinfo;
+
+ if (!ctl || !ctl->panel_data)
+ return;
+
+ pinfo = &ctl->panel_data->panel_info;
+ seq_printf(s, "Panel #%d %dx%dp%d\n",
+ pinfo->pdest, pinfo->xres, pinfo->yres,
+ mdss_panel_get_framerate(pinfo));
+ seq_printf(s, "\tvbp=%d vfp=%d vpw=%d hbp=%d hfp=%d hpw=%d\n",
+ pinfo->lcdc.v_back_porch,
+ pinfo->lcdc.v_front_porch,
+ pinfo->lcdc.v_pulse_width,
+ pinfo->lcdc.h_back_porch,
+ pinfo->lcdc.h_front_porch,
+ pinfo->lcdc.h_pulse_width);
+
+ if (pinfo->lcdc.border_bottom || pinfo->lcdc.border_top ||
+ pinfo->lcdc.border_left ||
+ pinfo->lcdc.border_right) {
+ seq_printf(s, "\tborder (l,t,r,b):[%d,%d,%d,%d] off xy:%d,%d\n",
+ pinfo->lcdc.border_left,
+ pinfo->lcdc.border_top,
+ pinfo->lcdc.border_right,
+ pinfo->lcdc.border_bottom,
+ ctl->border_x_off,
+ ctl->border_y_off);
+ }
+}
+
static void __dump_ctl(struct seq_file *s, struct mdss_mdp_ctl *ctl)
{
struct mdss_mdp_perf_params *perf;
@@ -168,7 +200,13 @@ static void __dump_ctl(struct seq_file *s, struct mdss_mdp_ctl *ctl)
seq_printf(s, "\n--[ Control path #%d - ", ctl->num);
if (ctl->panel_data) {
- seq_puts(s, mdss_panel2str(ctl->panel_data->panel_info.type));
+ struct mdss_mdp_ctl *sctl = mdss_mdp_get_split_ctl(ctl);
+
+ seq_printf(s, "%s%s]--\n",
+ sctl && sctl->panel_data ? "DUAL " : "",
+ mdss_panel2str(ctl->panel_data->panel_info.type));
+ __dump_timings(s, ctl);
+ __dump_timings(s, sctl);
} else {
struct mdss_mdp_mixer *mixer;
mixer = ctl->mixer_left;
@@ -179,9 +217,9 @@ static void __dump_ctl(struct seq_file *s, struct mdss_mdp_ctl *ctl)
} else {
seq_puts(s, "unknown");
}
+ seq_puts(s, "]--\n");
}
perf = &ctl->cur_perf;
- seq_puts(s, "]--\n");
seq_printf(s, "MDP Clk=%u Final BW=%llu\n",
perf->mdp_clk_rate,
perf->bw_ctl);