diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c index 3d2a81b91d53..42efb01ff671 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c @@ -3597,6 +3597,9 @@ static int vop2_plane_init(struct vop2 *vop2, struct vop2_win *win, unsigned lon drm_object_attach_property(&win->base.base, private->color_space_prop, 0); drm_object_attach_property(&win->base.base, private->async_commit_prop, 0); + if (win->feature & (WIN_FEATURE_CLUSTER_SUB | WIN_FEATURE_CLUSTER_MAIN)) + drm_object_attach_property(&win->base.base, private->share_id_prop, win->plane_id); + if (win->parent) drm_object_attach_property(&win->base.base, private->share_id_prop, win->parent->base.base.id); @@ -3805,9 +3808,6 @@ static int vop2_win_init(struct vop2 *vop2) win->zpos = i; win->vop2 = vop2; - if (win->feature & WIN_FEATURE_CLUSTER_SUB) - win->parent = &vop2->win[num_wins - 1]; - num_wins++; if (!vop2->support_multi_area)