From fe3cbe40dca8dd9cfd3b81f6f2df9df85a91fd92 Mon Sep 17 00:00:00 2001 From: Sandy Huang Date: Wed, 21 Feb 2024 11:29:01 +0800 Subject: [PATCH] drm/rockchip: vop2: esmart port sel config need only consider region0 If less this commit, esmart port sel will be set error val and lead to esmart register can't take effect, this will lead to like iommu pagefault issues. Signed-off-by: Sandy Huang Change-Id: If2c80a683b81d1ad00bdea9f2c09da90a5f55964 --- drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c index b1c485e6f315..2fb249931195 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c @@ -1894,7 +1894,7 @@ static void vop2_win_disable(struct vop2_win *win, bool skip_splice_win) * mst_en=0 and port0_extra_alpha_en=0[this take effect immediately and lead to esmat less fs], * so we set win_port_sel to 0 to avoid esmart1/3 close failed. */ - if (vop2->version == VOP_VERSION_RK3576 && win->vp_mask == BIT(0) && + if (vop2->version == VOP_VERSION_RK3576 && !win->parent && win->vp_mask == BIT(0) && (win->phys_id == ROCKCHIP_VOP2_ESMART1 || win->phys_id == ROCKCHIP_VOP2_ESMART3)) VOP_CTRL_SET(vop2, win_vp_id[win->phys_id], 0);