Hi Andy, On Mon, 9 Dec 2024 at 12:32, Andy Yan <andyshrk@xxxxxxx> wrote: > diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c > index bd8db45eeba6..1f101a3c3942 100644 > --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c > +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c > @@ -1224,7 +1224,15 @@ static int vop2_plane_atomic_check(struct drm_plane *plane, > return -EINVAL; > } > } > + } > > + if (fb->format->format == DRM_FORMAT_XRGB2101010 || fb->format->format == DRM_FORMAT_XBGR2101010) { > + if (vop2->data->soc_id == 3588) { > + if (!rockchip_afbc(plane, fb->modifier)) { > + drm_err(vop2->drm, "Unsupported linear 32 bpp for %s\n", win->data->name); > + return -EINVAL; > + } > + } Please do this in the format_mod_supported() hook, so userspace can see the true support of each format/modifier per plane. This will then be checked in drm_atomic_plane_check() so you don't need to open-code it here. Cheers, Daniel