msm: mdss: update mdp clock rate with pingpong split enabled

When pingpong split is enabled, single DSPP output is driving two
interfaces and MDP clock has to be 2x times the pixel clock. In the
current implementation, pingpong split is not considered in the MDP
clock calculations. This change accounts for pingpong split and update
MDP clock accordingly.

Change-Id: I85a86fa747c908f76bd01faf36fe310d502e2121
Signed-off-by: Jeevan Shriram <jshriram@codeaurora.org>
(cherry picked from commit 9aa39bfd928b40fa8f8b87b099dbb39d964be41f)
[veeras@codeaurora.org: Resolve merge conflict in mdss_mdp_ctl.c]
Signed-off-by: Veera Sundaram Sankaran <veeras@codeaurora.org>
This commit is contained in:
Jeevan Shriram 2015-02-10 16:30:40 -08:00 committed by David Keitel
parent 5640349eab
commit 4f39665309

View file

@ -832,10 +832,15 @@ static void mdss_mdp_perf_calc_mixer(struct mdss_mdp_mixer *mixer,
perf->bw_writeback = apply_overhead_factors(
perf->bw_writeback,
true, false, fmt);
} else if ((pinfo->type == MIPI_CMD_PANEL) &&
(pinfo->mipi.dsi_pclk_rate > perf->mdp_clk_rate)) {
/* for command mode, run as fast as the link allows */
perf->mdp_clk_rate = pinfo->mipi.dsi_pclk_rate;
/* for command mode, run as fast as the link allows us */
} else if (pinfo->type == MIPI_CMD_PANEL) {
u32 dsi_pclk_rate = pinfo->mipi.dsi_pclk_rate;
if (is_pingpong_split(mixer->ctl->mfd))
dsi_pclk_rate *= 2;
if (dsi_pclk_rate > perf->mdp_clk_rate)
perf->mdp_clk_rate = dsi_pclk_rate;
}
}