diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c index fb859b8673b3..ddbbfaf617e8 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c @@ -4497,13 +4497,16 @@ static void vop2_setup_alpha(struct vop2_video_port *vp, /* Transfer pixel alpha value to next mix */ alpha_config.src_premulti_en = true; alpha_config.dst_premulti_en = true; - alpha_config.src_pixel_alpha_en = true; + alpha_config.src_pixel_alpha_en = false; alpha_config.src_glb_alpha_value = 0xff; alpha_config.dst_glb_alpha_value = 0xff; vop2_parse_alpha(&alpha_config, &alpha); for (; i < hweight32(vp->win_mask); i++) { offset = (mixer_id + i - 1) * 0x10; + + vop2_writel(vop2, src_color_ctrl_offset + offset, alpha.src_alpha_ctrl.val); + vop2_writel(vop2, dst_color_ctrl_offset + offset, alpha.dst_color_ctrl.val); vop2_writel(vop2, src_alpha_ctrl_offset + offset, alpha.src_alpha_ctrl.val); vop2_writel(vop2, dst_alpha_ctrl_offset + offset, alpha.dst_alpha_ctrl.val); }