From dfda6d2d118e28c2eea7982df1c2d40700f8589b Mon Sep 17 00:00:00 2001 From: Terence Hampson Date: Fri, 17 Jul 2015 13:22:04 -0400 Subject: [PATCH] msm: mdss: Swap chroma channels for CrCb during writeback Only way to swap chroma channels for CrCb formats during writeback is to swap starting addresses. Change-Id: I24e72dea5200e1cefc73337117b9f7e44d7994eb Signed-off-by: Terence Hampson --- drivers/video/fbdev/msm/mdss_mdp_intf_writeback.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/video/fbdev/msm/mdss_mdp_intf_writeback.c b/drivers/video/fbdev/msm/mdss_mdp_intf_writeback.c index 543c3cb3eb33..e819ffcebd25 100644 --- a/drivers/video/fbdev/msm/mdss_mdp_intf_writeback.c +++ b/drivers/video/fbdev/msm/mdss_mdp_intf_writeback.c @@ -140,6 +140,10 @@ static int mdss_mdp_writeback_addr_setup(struct mdss_mdp_writeback_ctx *ctx, mdss_mdp_data_calc_offset(&data, ctx->dst_rect.x, ctx->dst_rect.y, &ctx->dst_planes, ctx->dst_fmt); + if ((ctx->dst_fmt->fetch_planes == MDSS_MDP_PLANE_PLANAR) && + (ctx->dst_fmt->element[0] == C1_B_Cb)) + swap(data.p[1].addr, data.p[2].addr); + mdp_wb_write(ctx, MDSS_MDP_REG_WB_DST0_ADDR, data.p[0].addr); mdp_wb_write(ctx, MDSS_MDP_REG_WB_DST1_ADDR, data.p[1].addr); mdp_wb_write(ctx, MDSS_MDP_REG_WB_DST2_ADDR, data.p[2].addr);