Message ID | 20241209123215.2781721-1-andyshrk@163.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | VOP Support for rk3576 | expand |
Hi Andy, On Mon, 9 Dec 2024 at 12:32, Andy Yan <andyshrk@163.com> 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
Hi Daniel, At 2024-12-10 01:06:05, "Daniel Stone" <daniel@fooishbar.org> wrote: >Hi Andy, > >On Mon, 9 Dec 2024 at 12:32, Andy Yan <andyshrk@163.com> 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. Thanks, will do in V6. > >Cheers, >Daniel
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; + } + } } /*