From e39f42cc7637bb6a976c17e6397676b0c9306218 Mon Sep 17 00:00:00 2001 From: Jayant Shekhar Date: Mon, 8 May 2017 15:32:06 +0530 Subject: [PATCH] msm: mdss: Correct source and destination buffer rectangles In case of 180 degree panel flip using pan display for commit, correct source and destination buffer rectangles as mixer swap is no longer supported. Change-Id: Ifd31732ace6ebefd865933b6be359374e4a9fa63 Signed-off-by: Jayant Shekhar --- drivers/video/fbdev/msm/mdss_mdp_overlay.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/drivers/video/fbdev/msm/mdss_mdp_overlay.c b/drivers/video/fbdev/msm/mdss_mdp_overlay.c index 8c612e2b83fb..c20a2e8ba246 100644 --- a/drivers/video/fbdev/msm/mdss_mdp_overlay.c +++ b/drivers/video/fbdev/msm/mdss_mdp_overlay.c @@ -953,13 +953,6 @@ int mdss_mdp_overlay_pipe_setup(struct msm_fb_data_type *mfd, pipe->dst.y += mixer->ctl->border_y_off; } - if (mfd->panel_orientation & MDP_FLIP_LR) - pipe->dst.x = pipe->mixer_left->width - - pipe->dst.x - pipe->dst.w; - if (mfd->panel_orientation & MDP_FLIP_UD) - pipe->dst.y = pipe->mixer_left->height - - pipe->dst.y - pipe->dst.h; - pipe->horz_deci = req->horz_deci; pipe->vert_deci = req->vert_deci; @@ -2966,6 +2959,16 @@ static int mdss_mdp_overlay_get_fb_pipe(struct msm_fb_data_type *mfd, req->src_rect = right_rect; } + if (mfd->panel_orientation == MDP_ROT_180) { + if (mixer_mux == MDSS_MDP_MIXER_MUX_RIGHT) { + req->src_rect.x = 0; + req->dst_rect.x = mixer->width; + } else { + req->src_rect.x = (split_lm) ? mixer->width : 0; + req->dst_rect.x = 0; + } + } + req->z_order = MDSS_MDP_STAGE_BASE; if (rotate_180) req->flags |= (MDP_FLIP_LR | MDP_FLIP_UD);