From f337093cab2d6ac0e8ee65a84817cfacb7a5920e Mon Sep 17 00:00:00 2001 From: Ingrid Gallardo Date: Wed, 30 Sep 2015 11:45:14 -0700 Subject: [PATCH] msm: mdss: add xlog for dynamic fps Add xlog entries to debug dynamic fps. Change-Id: I1ba1c9ed6d746d26d77b2805d6c812a1986b60e9 Signed-off-by: Ingrid Gallardo --- drivers/video/fbdev/msm/mdss_dsi.c | 3 +++ drivers/video/fbdev/msm/mdss_mdp_ctl.c | 2 +- drivers/video/fbdev/msm/mdss_mdp_intf_video.c | 16 ++++++++++++++++ .../video/fbdev/msm/mdss_mdp_intf_writeback.c | 1 + drivers/video/fbdev/msm/mdss_mdp_overlay.c | 3 +++ 5 files changed, 24 insertions(+), 1 deletion(-) diff --git a/drivers/video/fbdev/msm/mdss_dsi.c b/drivers/video/fbdev/msm/mdss_dsi.c index 009a172d658b..359bafebe40f 100644 --- a/drivers/video/fbdev/msm/mdss_dsi.c +++ b/drivers/video/fbdev/msm/mdss_dsi.c @@ -1611,7 +1611,10 @@ static void __mdss_dsi_update_video_mode_total(struct mdss_panel_data *pdata, if (ctrl_pdata->shared_data->timing_db_mode) MIPI_OUTP((ctrl_pdata->ctrl_base) + 0x1e4, 0x1); + ctrl_pdata->panel_data.panel_info.mipi.frame_rate = new_fps; + MDSS_XLOG(current_dsi_v_total, new_dsi_v_total, new_fps, + ctrl_pdata->shared_data->timing_db_mode); } diff --git a/drivers/video/fbdev/msm/mdss_mdp_ctl.c b/drivers/video/fbdev/msm/mdss_mdp_ctl.c index df5d32ebb430..9f403b4de8aa 100644 --- a/drivers/video/fbdev/msm/mdss_mdp_ctl.c +++ b/drivers/video/fbdev/msm/mdss_mdp_ctl.c @@ -4594,7 +4594,7 @@ int mdss_mdp_display_commit(struct mdss_mdp_ctl *ctl, void *arg, sctl_flush_bits); sctl->flush_bits = 0; } - MDSS_XLOG(ctl_flush_bits, sctl_flush_bits); + MDSS_XLOG(ctl->intf_num, ctl_flush_bits, sctl_flush_bits); wmb(); ctl->flush_reg_data = ctl_flush_bits; ctl->flush_bits = 0; diff --git a/drivers/video/fbdev/msm/mdss_mdp_intf_video.c b/drivers/video/fbdev/msm/mdss_mdp_intf_video.c index 07f949b6650d..7af95a043547 100644 --- a/drivers/video/fbdev/msm/mdss_mdp_intf_video.c +++ b/drivers/video/fbdev/msm/mdss_mdp_intf_video.c @@ -245,6 +245,9 @@ static int mdss_mdp_video_timegen_setup(struct mdss_mdp_ctl *ctl, vsync_period = p->vsync_pulse_width + p->v_back_porch + p->height + p->v_front_porch; + MDSS_XLOG(p->vsync_pulse_width, p->v_back_porch, + p->height, p->v_front_porch); + display_v_start = ((p->vsync_pulse_width + p->v_back_porch) * hsync_period) + p->hsync_skew; display_v_end = ((vsync_period - p->v_front_porch) * hsync_period) + @@ -328,6 +331,7 @@ static int mdss_mdp_video_timegen_setup(struct mdss_mdp_ctl *ctl, mdp_video_write(ctx, MDSS_MDP_REG_INTF_HSYNC_SKEW, p->hsync_skew); mdp_video_write(ctx, MDSS_MDP_REG_INTF_POLARITY_CTL, polarity_ctl); mdp_video_write(ctx, MDSS_MDP_REG_INTF_FRAME_LINE_COUNT_EN, 0x3); + MDSS_XLOG(hsync_period, vsync_period); /* * If CDM is present Interface should have destination @@ -743,6 +747,7 @@ static int mdss_mdp_video_timegen_update(struct mdss_mdp_video_ctx *ctx, mdp_video_write(ctx, MDSS_MDP_REG_INTF_DISPLAY_V_START_F0, display_v_start); mdp_video_write(ctx, MDSS_MDP_REG_INTF_DISPLAY_V_END_F0, display_v_end); + MDSS_XLOG(ctx->intf_num, hsync_ctl, vsync_period, hsync_period); return 0; } @@ -804,6 +809,8 @@ static int mdss_mdp_video_vfp_fps_update(struct mdss_mdp_video_ctx *ctx, mdp_video_write(ctx, MDSS_MDP_REG_INTF_VSYNC_PERIOD_F0, new_vsync_period_f0 & 0x7fffff); } + MDSS_XLOG(ctx->intf_num, current_vsync_period_f0, + hsync_period, vsync_period, new_vsync_period_f0); return 0; } @@ -881,6 +888,7 @@ static void mdss_mdp_video_timegen_flush(struct mdss_mdp_ctl *ctl, { u32 ctl_flush; struct mdss_data_type *mdata; + mdata = ctl->mdata; ctl_flush = (BIT(31) >> (ctl->intf_num - MDSS_MDP_INTF0)); if (sctx) { @@ -892,6 +900,7 @@ static void mdss_mdp_video_timegen_flush(struct mdss_mdp_ctl *ctl, (sctx->intf_num - MDSS_MDP_INTF0)); } mdss_mdp_ctl_write(ctl, MDSS_MDP_REG_CTL_FLUSH, ctl_flush); + MDSS_XLOG(ctl->intf_num, sctx?sctx->intf_num:0xf00, ctl_flush); } /** @@ -952,6 +961,8 @@ static int mdss_mdp_video_config_fps(struct mdss_mdp_ctl *ctl, int new_fps) pr_debug("ctl:%d dfps_update:%d fps:%d\n", ctl->num, pdata->panel_info.dfps_update, new_fps); + MDSS_XLOG(ctl->num, pdata->panel_info.dfps_update, + new_fps, XLOG_FUNC_ENTRY); if (pdata->panel_info.dfps_update != DFPS_SUSPEND_RESUME_MODE) { @@ -1064,6 +1075,7 @@ exit_dfps: } end: + MDSS_XLOG(ctl->num, new_fps, XLOG_FUNC_EXIT); mutex_unlock(&ctl->offlock); return rc; } @@ -1251,6 +1263,7 @@ static void mdss_mdp_fetch_end_config(struct mdss_mdp_video_ctx *ctx, mdp_video_write(ctx, MDSS_MDP_REG_INTF_VBLANK_END_CONF, fetch_stop); mdp_video_write(ctx, MDSS_MDP_REG_INTF_CONFIG, vblank_end_enable); + MDSS_XLOG(ctx->intf_num, fetch_stop, vblank_end_enable); } static void mdss_mdp_fetch_start_config(struct mdss_mdp_video_ctx *ctx, @@ -1287,6 +1300,7 @@ static void mdss_mdp_fetch_start_config(struct mdss_mdp_video_ctx *ctx, mdp_video_write(ctx, MDSS_MDP_REG_INTF_PROG_FETCH_START, fetch_start); mdp_video_write(ctx, MDSS_MDP_REG_INTF_CONFIG, fetch_enable); + MDSS_XLOG(ctx->intf_num, fetch_enable, fetch_start); } static inline bool mdss_mdp_video_need_pixel_drop(u32 vic) @@ -1361,6 +1375,8 @@ static void mdss_mdp_handoff_programmable_fetch(struct mdss_mdp_ctl *ctl, ((fetch_start_handoff - 1)/h_total_handoff); pr_debug("programmable fetch lines %d start:%d\n", pinfo->prg_fet, fetch_start_handoff); + MDSS_XLOG(pinfo->prg_fet, fetch_start_handoff, + h_total_handoff, v_total_handoff); } } diff --git a/drivers/video/fbdev/msm/mdss_mdp_intf_writeback.c b/drivers/video/fbdev/msm/mdss_mdp_intf_writeback.c index a2aacd9550db..0fae530fae12 100644 --- a/drivers/video/fbdev/msm/mdss_mdp_intf_writeback.c +++ b/drivers/video/fbdev/msm/mdss_mdp_intf_writeback.c @@ -789,6 +789,7 @@ static int mdss_mdp_writeback_display(struct mdss_mdp_ctl *ctl, void *arg) flush_bits |= BIT(16); /* WB */ mdp_wb_write(ctx, MDSS_MDP_REG_WB_DST_ADDR_SW_STATUS, ctl->is_secure); mdss_mdp_ctl_write(ctl, MDSS_MDP_REG_CTL_FLUSH, flush_bits); + MDSS_XLOG(ctl->intf_num, flush_bits); reinit_completion(&ctx->wb_comp); mdss_mdp_irq_enable(ctx->intr_type, ctx->intf_num); diff --git a/drivers/video/fbdev/msm/mdss_mdp_overlay.c b/drivers/video/fbdev/msm/mdss_mdp_overlay.c index 97e65bdcc393..a2dfdbba749e 100644 --- a/drivers/video/fbdev/msm/mdss_mdp_overlay.c +++ b/drivers/video/fbdev/msm/mdss_mdp_overlay.c @@ -2708,6 +2708,7 @@ static ssize_t dynamic_fps_sysfs_wta_dfps(struct device *dev, } pdata->panel_info.new_fps = dfps; + MDSS_XLOG(dfps); mutex_unlock(&mdp5_data->dfps_lock); return count; } /* dynamic_fps_sysfs_wta_dfps */ @@ -3164,6 +3165,7 @@ int mdss_mdp_cursor_flush(struct msm_fb_data_type *mfd, mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_ON); mdss_mdp_ctl_write(ctl, MDSS_MDP_REG_CTL_FLUSH, flush_bits); + MDSS_XLOG(ctl->intf_num, flush_bits); if ((!ctl->split_flush_en) && pipe->mixer_right) { sctl = mdss_mdp_get_split_ctl(ctl); if (!sctl) { @@ -3171,6 +3173,7 @@ int mdss_mdp_cursor_flush(struct msm_fb_data_type *mfd, return -ENODEV; } mdss_mdp_ctl_write(sctl, MDSS_MDP_REG_CTL_FLUSH, flush_bits); + MDSS_XLOG(sctl->intf_num, flush_bits); } mdss_mdp_clk_ctrl(MDP_BLOCK_POWER_OFF);