msm: mdss: Consider FLIP flags while optimizing pixel fetch
While calculating source and destination rect of a pipe for the
programmed ROI, consider FLIP flags set for the pipe.
Change-Id: I631453c26f443b08a23556f83195d9914e05b41d
Signed-off-by: Jeykumar Sankaran <jsanka@codeaurora.org>
diff --git a/drivers/video/msm/mdss/mdss_mdp_pipe.c b/drivers/video/msm/mdss/mdss_mdp_pipe.c
index 32b8cbf..70544c0 100644
--- a/drivers/video/msm/mdss/mdss_mdp_pipe.c
+++ b/drivers/video/msm/mdss/mdss_mdp_pipe.c
@@ -924,8 +924,17 @@
dst = pipe->dst;
src = pipe->src;
- if (pipe->mixer->type == MDSS_MDP_MIXER_TYPE_INTF)
+ if (pipe->mixer->type == MDSS_MDP_MIXER_TYPE_INTF) {
mdss_mdp_crop_rect(&src, &dst, &sci);
+ if (pipe->flags & MDP_FLIP_LR) {
+ src.x = pipe->src.x + (pipe->src.x + pipe->src.w)
+ - (src.x + src.w);
+ }
+ if (pipe->flags & MDP_FLIP_UD) {
+ src.y = pipe->src.y + (pipe->src.y + pipe->src.h)
+ - (src.y + src.h);
+ }
+ }
src_size = (src.h << 16) | src.w;
src_xy = (src.y << 16) | src.x;