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 <hjc@rock-chips.com>
Change-Id: I617f73786d93398965f5dcfac32f6fa76ee2e42e
This commit is contained in:
Sandy Huang
2024-09-19 17:39:18 +08:00
committed by Tao Huang
parent ab24b712e1
commit 497e16fefa

View File

@@ -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;
}
}
}