summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Salido-Moreno <adrianm@codeaurora.org>2013-03-12 16:41:57 -0700
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 20:15:47 -0700
commitd5a55d52ee49e59a25fb477fa807406b6410c52e (patch)
treeb2e0b3fbc4ae0b239a9bc268a40f4185ba8c20cb
parentf7ad8f651d8bfb3ede5132f00700a4447685ec3c (diff)
msm: mdss: observe dual pipe mux inefficiencies for mdp clock rate
There is some inefficiency in dual pipe mux where it can only use 8 out of 9 clocks when running in dual pipe mode. In order to account for this, need to ensure that minimum MDP clock accounts for this inefficiency. Change-Id: Ia7bebaaff7720cd293cd478f7f45ca8ed8d36f2f Signed-off-by: Adrian Salido-Moreno <adrianm@codeaurora.org>
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp_ctl.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/video/fbdev/msm/mdss_mdp_ctl.c b/drivers/video/fbdev/msm/mdss_mdp_ctl.c
index 108340de5d9a..97998d8cc8ff 100644
--- a/drivers/video/fbdev/msm/mdss_mdp_ctl.c
+++ b/drivers/video/fbdev/msm/mdss_mdp_ctl.c
@@ -200,6 +200,20 @@ static int mdss_mdp_ctl_perf_update(struct mdss_mdp_ctl *ctl)
total_ib_quota += ib_quota;
if (clk_rate > max_clk_rate)
max_clk_rate = clk_rate;
+
+ if (ctl->intf_type) {
+ struct mdss_panel_info *pinfo;
+
+ pinfo = &ctl->panel_data->panel_info;
+ clk_rate = (ctl->intf_type == MDSS_INTF_DSI) ?
+ pinfo->mipi.dsi_pclk_rate :
+ pinfo->clk_rate;
+
+ /* minimum clock rate due to inefficiency in 3dmux */
+ clk_rate = mult_frac(clk_rate >> 1, 9, 8);
+ if (clk_rate > max_clk_rate)
+ max_clk_rate = clk_rate;
+ }
}
/* request minimum bandwidth to have bus clock on when display is on */