From d8ab4596ea360b6b5f5abb65e7a175572ef0a372 Mon Sep 17 00:00:00 2001 From: Sandy Huang Date: Tue, 3 Aug 2021 11:35:11 +0800 Subject: [PATCH] drm/rockchip: vop2: output error info when cluster use non afbc format This is special feature at rk356x, the cluster layer only can support afbc format and can't support linear format; Signed-off-by: Sandy Huang Change-Id: Ic8efc26c07a088c246969622fcf2973b00abd9c2 --- drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c index 72ebfee6c856..7cac259bd675 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c @@ -2852,6 +2852,17 @@ static int vop2_plane_atomic_check(struct drm_plane *plane, struct drm_plane_sta else vpstate->afbc_en = false; + /* + * This is special feature at rk356x, the cluster layer only can support + * afbc format and can't support linear format; + */ + if (VOP_MAJOR(vop2_data->version) == 0x40 && VOP_MINOR(vop2_data->version) == 0x15) { + if (vop2_cluster_window(win) && !vpstate->afbc_en) { + DRM_ERROR("Unsupported linear format at %s\n", win->name); + return -EINVAL; + } + } + /* * Src.x1 can be odd when do clip, but yuv plane start point * need align with 2 pixel.