From 497e16fefae9f9d509886cca580ca19fb50ed2d6 Mon Sep 17 00:00:00 2001 From: Sandy Huang Date: Thu, 19 Sep 2024 17:39:18 +0800 Subject: [PATCH] drm/rockchip: vop2: reset splice_win at vop2_win_disable() We only need to ignore rk3588/rk3576 esmart pd turn on/off at vop2_win_disable(), the following splice win reset should be run. Signed-off-by: Sandy Huang Change-Id: I617f73786d93398965f5dcfac32f6fa76ee2e42e --- drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c index ad108b6a826e..edf3aa19563a 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c @@ -2126,7 +2126,7 @@ static void vop2_win_disable(struct vop2_win *win, bool skip_splice_win) if (win->pd) { /* - * Don't dynamic turn on/off PD_ESMART at RK3588. + * Don't dynamic turn on/off PD_ESMART at RK3588/RK3576. * (1) There is a design issue for PD_EMSART when attached * on VP1/2/3, we found it will trigger POST_BUF_EMPTY irq at vp0 * in splice mode. @@ -2135,12 +2135,10 @@ static void vop2_win_disable(struct vop2_win *win, bool skip_splice_win) * maybe lead to PD_ESMART closed at wrong time and display error. * (3) PD_ESMART power up maybe have 4 us delay, this will lead to POST_BUF_EMPTY. */ - if ((win->pd->data->id == VOP2_PD_ESMART && vop2->version == VOP_VERSION_RK3588) || - vop2->version == VOP_VERSION_RK3576) - return; - - vop2_power_domain_put(win->pd); - win->pd->vp_mask &= ~win->vp_mask; + if (win->pd->data->id != VOP2_PD_ESMART) { + vop2_power_domain_put(win->pd); + win->pd->vp_mask &= ~win->vp_mask; + } } }