Re: [PATCH v5 08/18] drm/rockchip: vop2: Add check for 32 bpp format

Daniel Stone
2024-12-09T17:06:17Z

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