From 7ce11cdd5dbd4bd064a1a63bc27a9808a5235023 Mon Sep 17 00:00:00 2001 From: Naseer Ahmed <naseer@codeaurora.org> Date: Thu, 17 Jan 2013 20:51:57 -0500 Subject: [PATCH] msm: display: Fix blend configuration for video layer with MDP composition With video layer in MDP composition, there is no need to apply destination over blend rule, as z-order of layers take care of proper staging of layers by default. Apply constant blend to the video layer when in MDP composition CRs-fixed: 437965 Change-Id: I7476659f12cdf06018bf6ace829a836c86ae97e8 Signed-off-by: Mayank Chopra <makchopra@codeaurora.org> --- drivers/video/msm/mdp4_overlay.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/video/msm/mdp4_overlay.c b/drivers/video/msm/mdp4_overlay.c index 1e8abfa6ad98..055c0c243809 100644 --- a/drivers/video/msm/mdp4_overlay.c +++ b/drivers/video/msm/mdp4_overlay.c @@ -1913,9 +1913,11 @@ void mdp4_mixer_blend_setup(int mixer) alpha_drop = 0; /* per stage */ /* alpha channel is lost on VG pipe when using QSEED or M/N */ if (s_pipe->pipe_type == OVERLAY_TYPE_VIDEO && + s_pipe->alpha_enable && ((s_pipe->op_mode & MDP4_OP_SCALEY_EN) || (s_pipe->op_mode & MDP4_OP_SCALEX_EN)) && - !(s_pipe->op_mode & MDP4_OP_SCALEY_PIXEL_RPT)) + !(s_pipe->op_mode & (MDP4_OP_SCALEX_PIXEL_RPT | + MDP4_OP_SCALEY_PIXEL_RPT))) alpha_drop = 1; d_pipe = mdp4_background_layer(mixer, s_pipe); @@ -1951,7 +1953,8 @@ void mdp4_mixer_blend_setup(int mixer) blend->op = MDP4_BLEND_BG_ALPHA_FG_CONST; } else if (d_alpha) { ptype = mdp4_overlay_format2type(s_pipe->src_format); - if (ptype == OVERLAY_TYPE_VIDEO) { + if (ptype == OVERLAY_TYPE_VIDEO && + (!(s_pipe->flags & MDP_BACKEND_COMPOSITION))) { blend->op = (MDP4_BLEND_FG_ALPHA_BG_PIXEL | MDP4_BLEND_FG_INV_ALPHA); if (!(s_pipe->flags & MDP_BLEND_FG_PREMULT)) -- GitLab