summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMayank Chopra <makchopra@codeaurora.org>2014-01-09 18:58:59 +0530
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 20:25:12 -0700
commit8331ea4e224703cacc193fe75ed77b62380560da (patch)
tree9f772fc332a0f8a3676a7e2e0056d2d509598812
parente56b419f383a03bc3708f09b49ee7b952d554605 (diff)
msm: mdss: Reserve single SMP block for writeback mixer pipes
Writeback does not have stringent requirement for latency buffers. So, SMP blocks reservation for the pipes attached to writeback block can be restricted to single SMP block for each plane. This makes more SMP block available for other clients. Change-Id: I3d788bcf7fcbc5667b4a3a0c52256f55cc0aa1e7 Signed-off-by: Mayank Chopra <makchopra@codeaurora.org>
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp_pipe.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/video/fbdev/msm/mdss_mdp_pipe.c b/drivers/video/fbdev/msm/mdss_mdp_pipe.c
index 029594361777..d254c091ee5b 100644
--- a/drivers/video/fbdev/msm/mdss_mdp_pipe.c
+++ b/drivers/video/fbdev/msm/mdss_mdp_pipe.c
@@ -168,7 +168,7 @@ int mdss_mdp_smp_reserve(struct mdss_mdp_pipe *pipe)
u32 num_blks = 0, reserved = 0;
struct mdss_mdp_plane_sizes ps;
int i;
- int rc = 0, rot_mode = 0;
+ int rc = 0, rot_mode = 0, wb_mixer = 0;
u32 nlines, format, seg_w;
u16 width;
@@ -252,9 +252,12 @@ int mdss_mdp_smp_reserve(struct mdss_mdp_pipe *pipe)
else
nlines = pipe->bwc_mode ? 1 : 2;
+ if (pipe->mixer->type == MDSS_MDP_MIXER_TYPE_WRITEBACK)
+ wb_mixer = 1;
+
mutex_lock(&mdss_mdp_smp_lock);
for (i = 0; i < ps.num_planes; i++) {
- if (rot_mode) {
+ if (rot_mode || wb_mixer) {
num_blks = 1;
} else {
num_blks = DIV_ROUND_UP(ps.ystride[i] * nlines,