From c579c8770c6c0a9e823cc4a7d1349ea4e3d99d95 Mon Sep 17 00:00:00 2001 From: Adrian Salido-Moreno Date: Mon, 24 Sep 2012 17:36:38 -0700 Subject: [PATCH] msm: mdss: fix rotator hang for xrgb formats XRGB formats require constant alpha to be setup when writing back to memory. Change-Id: Ie819b88578a85923d1cde7efe54ca0819c59a611 Signed-off-by: Adrian Salido-Moreno --- drivers/video/msm/mdss/mdss_mdp_intf_writeback.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/video/msm/mdss/mdss_mdp_intf_writeback.c b/drivers/video/msm/mdss/mdss_mdp_intf_writeback.c index 8b4434e7798..c9acc657767 100644 --- a/drivers/video/msm/mdss/mdss_mdp_intf_writeback.c +++ b/drivers/video/msm/mdss/mdss_mdp_intf_writeback.c @@ -150,8 +150,11 @@ static int mdss_mdp_writeback_format_setup(struct mdss_mdp_writeback_ctx *ctx) (fmt->bits[C1_B_Cb] << 2) | (fmt->bits[C0_G_Y] << 0); - if (fmt->alpha_enable) + if (fmt->bits[C3_ALPHA] || fmt->alpha_enable) { dst_format |= BIT(8); /* DSTC3_EN */ + if (!fmt->alpha_enable) + dst_format |= BIT(14); /* DST_ALPHA_X */ + } if (fmt->fetch_planes != MDSS_MDP_PLANE_PLANAR) { pattern = (fmt->element[3] << 24) | (fmt->element[2] << 15) |