If we want to find out if a window is eSmart or not, test for not being a cluster window, rather than AFBDC presence.
No functional effect as only cluster windows support AFBC decode. Signed-off-by: Daniel Stone <[email protected]> --- drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c index 812a46032396..f8039dc0e829 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c @@ -1227,12 +1227,10 @@ static void vop2_plane_atomic_update(struct drm_plane *plane, * This is workaround solution for IC design: * esmart can't support scale down when src_w % 16 == 1. */ - if (!(win->data->feature & WIN_FEATURE_AFBDC)) { - if (src_w > dsp_w && (src_w & 0xf) == 1) { - drm_dbg_kms(vop2->drm, "vp%d %s act_w[%d] MODE 16 == 1\n", - vp->id, win->data->name, src_w); - src_w -= 1; - } + if (!vop2_cluster_window(win) && src_w > dsp_w && (src_w & 1)) { + drm_dbg_kms(vop2->drm, "vp%d %s act_w[%d] MODE 16 == 1\n", + vp->id, win->data->name, src_w); + src_w -= 1; } if (afbc_en && src_w % 4) { -- 2.51.0
