diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.h b/drivers/gpu/drm/rockchip/rockchip_drm_vop.h index fd98b7a576ed..89ede9c7052e 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.h +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.h @@ -1003,6 +1003,7 @@ struct vop2_video_port_regs { struct vop_reg hdr_dst_color_ctrl; struct vop_reg hdr_src_alpha_ctrl; struct vop_reg hdr_dst_alpha_ctrl; + struct vop_reg port_extra_en; struct vop_reg bg_mix_ctrl; struct vop_reg layer_sel; diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c index 3d8e8bc25b3f..b3d7feb93a29 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c @@ -11885,7 +11885,7 @@ static void rk3576_extra_alpha(struct vop2_video_port *vp, const struct vop2_zpo vop2_writel(vop2, src_alpha_ctrl_offset, alpha.src_alpha_ctrl.val); vop2_writel(vop2, dst_alpha_ctrl_offset, alpha.dst_alpha_ctrl.val); - vop2_writel(vop2, 0x500, 1);/* enable port0_extra_alpha_en */ + VOP_MODULE_SET(vop2, vp, port_extra_en, 1);/* enable port0_extra_alpha_en */ } else { /* alpha value need transfer to next mix, and the data from last mix is at bottom layer */ alpha_config.dst_pixel_alpha_en = true; @@ -11906,7 +11906,7 @@ static void rk3576_extra_alpha(struct vop2_video_port *vp, const struct vop2_zpo vop2_writel(vop2, dst_color_ctrl_offset, alpha.dst_color_ctrl.val); vop2_writel(vop2, src_alpha_ctrl_offset, alpha.src_alpha_ctrl.val); vop2_writel(vop2, dst_alpha_ctrl_offset, alpha.dst_alpha_ctrl.val); - vop2_writel(vop2, 0x500, 0);/* disable port0_extra_alpha_en */ + VOP_MODULE_SET(vop2, vp, port_extra_en, 0);/* disable port0_extra_alpha_en */ } } diff --git a/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c b/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c index 5ce5810abd17..89952e5d743c 100644 --- a/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c +++ b/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c @@ -1600,6 +1600,7 @@ static const struct vop2_video_port_regs rk3576_vop_vp0_regs = { .edpi_wms_hold_en = VOP_REG(RK3568_VP0_DUAL_CHANNEL_CTRL, 0x1, 30), .edpi_wms_fs = VOP_REG(RK3568_VP0_DUAL_CHANNEL_CTRL, 0x1, 31), + .port_extra_en = VOP_REG(RK3528_OVL_SYS, 0x1, 0), .bg_mix_ctrl = VOP_REG(RK3528_OVL_PORT0_BG_MIX_CTRL, 0xffff, 0), .bg_dly = VOP_REG(RK3528_OVL_PORT0_BG_MIX_CTRL, 0xff, 24), .pre_scan_htiming = VOP_REG(RK3568_VP0_PRE_SCAN_HTIMING, 0x1fff1fff, 0),