From e2a0c491c82256c4f054b0b572f47bdb36df7a68 Mon Sep 17 00:00:00 2001 From: Sandy Huang Date: Wed, 21 Feb 2024 10:07:08 +0800 Subject: [PATCH] drm/rockchip: vop2: disable dma access stride 4k If less this commit, Cluster will be display black and appear POST_BUF_EMPTY. Signed-off-by: Sandy Huang Change-Id: Ia0505bdb3917624725bb288e089fb88abbe9972e --- drivers/gpu/drm/rockchip/rockchip_drm_vop.h | 1 + drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 1 + drivers/gpu/drm/rockchip/rockchip_vop2_reg.c | 2 ++ 3 files changed, 4 insertions(+) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.h b/drivers/gpu/drm/rockchip/rockchip_drm_vop.h index 91bf83f8996b..28e23141d4b9 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.h +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.h @@ -714,6 +714,7 @@ struct vop2_cluster_regs { struct vop_reg lb_mode; struct vop_reg scl_lb_mode; struct vop_reg frm_reset_en; + struct vop_reg dma_stride_4k_disable; struct vop_reg blk_size_h; struct vop_reg blk_size_v; diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c index ab139eeaf476..dea8a92c334a 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c @@ -5796,6 +5796,7 @@ static void vop2_win_atomic_update(struct vop2_win *win, struct drm_rect *src, s VOP_CLUSTER_SET(vop2, win, scl_lb_mode, lb_mode == 1 ? 3 : 0); VOP_CLUSTER_SET(vop2, win, enable, 1); VOP_CLUSTER_SET(vop2, win, frm_reset_en, 1); + VOP_CLUSTER_SET(vop2, win, dma_stride_4k_disable, 1); } spin_unlock(&vop2->reg_lock); } diff --git a/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c b/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c index 05eca0655e22..317e3692df0b 100644 --- a/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c +++ b/drivers/gpu/drm/rockchip/rockchip_vop2_reg.c @@ -2377,6 +2377,7 @@ static const struct vop2_cluster_regs rk3576_vop_cluster0 = { .enable = VOP_REG(RK3568_CLUSTER0_CTRL, 1, 0), .lb_mode = VOP_REG(RK3568_CLUSTER0_CTRL, 0xf, 4), .scl_lb_mode = VOP_REG(RK3568_CLUSTER0_CTRL, 0x3, 9), + .dma_stride_4k_disable = VOP_REG(RK3568_CLUSTER0_CTRL, 1, 29), .frm_reset_en = VOP_REG(RK3568_CLUSTER0_CTRL, 1, 31), .blk_size_h = VOP_REG(RK3576_CLUSTER0_DCI_BLK_SIZE, 0x1ff, 0), .blk_size_v = VOP_REG(RK3576_CLUSTER0_DCI_BLK_SIZE, 0x1ff, 16), @@ -2410,6 +2411,7 @@ static const struct vop2_cluster_regs rk3576_vop_cluster1 = { .enable = VOP_REG(RK3568_CLUSTER1_CTRL, 1, 0), .lb_mode = VOP_REG(RK3568_CLUSTER1_CTRL, 0xf, 4), .scl_lb_mode = VOP_REG(RK3568_CLUSTER1_CTRL, 0x3, 9), + .dma_stride_4k_disable = VOP_REG(RK3568_CLUSTER1_CTRL, 1, 29), .frm_reset_en = VOP_REG(RK3568_CLUSTER1_CTRL, 1, 31), .src_color_ctrl = VOP_REG(RK3576_CLUSTER1_MIX_SRC_COLOR_CTRL, 0xffffffff, 0), .dst_color_ctrl = VOP_REG(RK3576_CLUSTER1_MIX_DST_COLOR_CTRL, 0xffffffff, 0),