summaryrefslogtreecommitdiff
path: root/drivers/video/fbdev
diff options
context:
space:
mode:
authorBenjamin Chan <bkchan@codeaurora.org>2017-04-26 15:10:37 -0400
committerBenjamin Chan <bkchan@codeaurora.org>2017-04-28 14:36:49 -0400
commit2813eebc366a6ef3455676c922032a14c48269eb (patch)
tree7be3fe3a0f8e4d65c53733a511a6d19e5002e7e8 /drivers/video/fbdev
parentd8af252b938a3a60527e346d5dd200adb7facb3e (diff)
msm: mdss: Retrict use of DMA Multi-Rect for FB pan_display
For non-atomic display commit that use pan_display, it is not possible to use multi-rect feature from the DMA pipe. This fix is to reject any multi-rect DMA pipe being used in the commit when all the non multi-rect DMA pipes are not available. CRs-Fixed: 2036486 Change-Id: I16722d62650807b5f46ca2bb544653f43a01edf1 Signed-off-by: Benjamin Chan <bkchan@codeaurora.org>
Diffstat (limited to 'drivers/video/fbdev')
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp_overlay.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/drivers/video/fbdev/msm/mdss_mdp_overlay.c b/drivers/video/fbdev/msm/mdss_mdp_overlay.c
index 8c612e2b83fb..87fff44af389 100644
--- a/drivers/video/fbdev/msm/mdss_mdp_overlay.c
+++ b/drivers/video/fbdev/msm/mdss_mdp_overlay.c
@@ -3053,6 +3053,13 @@ static void mdss_mdp_overlay_pan_display(struct msm_fb_data_type *mfd)
goto pipe_release;
}
+ if (l_pipe_allocated &&
+ (l_pipe->multirect.num == MDSS_MDP_PIPE_RECT1)) {
+ pr_err("Invalid: L_Pipe-%d is assigned for RECT-%d\n",
+ l_pipe->num, l_pipe->multirect.num);
+ goto pipe_release;
+ }
+
if (mdss_mdp_pipe_map(l_pipe)) {
pr_err("unable to map base pipe\n");
goto pipe_release;
@@ -3100,6 +3107,16 @@ static void mdss_mdp_overlay_pan_display(struct msm_fb_data_type *mfd)
goto iommu_disable;
}
+ if (l_pipe_allocated && r_pipe_allocated &&
+ (l_pipe->num != r_pipe->num) &&
+ (r_pipe->multirect.num ==
+ MDSS_MDP_PIPE_RECT1)) {
+ pr_err("Invalid: L_Pipe-%d,RECT-%d R_Pipe-%d,RECT-%d\n",
+ l_pipe->num, l_pipe->multirect.num,
+ r_pipe->num, l_pipe->multirect.num);
+ goto iommu_disable;
+ }
+
if (mdss_mdp_pipe_map(r_pipe)) {
pr_err("unable to map right base pipe\n");
goto iommu_disable;