From 3f2985d152ed3d7dbdd72f748dc5e05db26dd377 Mon Sep 17 00:00:00 2001 From: Damon Ding Date: Tue, 13 Jun 2023 10:53:09 +0800 Subject: [PATCH] drm/rockchip: vop: add check if global/pixel alpha both enable VOP in RK3308 supports global alpha and pixel alpha. Only one alpha mode can be enabled at the same time. Signed-off-by: Damon Ding Change-Id: Ia749deeb82a31b7e5298ca14586bbfb75606469f --- drivers/gpu/drm/rockchip/rockchip_drm_vop.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c index 5eb926550f71..7bb333fe2446 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c @@ -1670,6 +1670,12 @@ static int vop_plane_atomic_check(struct drm_plane *plane, vop = to_vop(crtc); vop_data = vop->data; + if (VOP_MAJOR(vop->version) == 2 && is_alpha_support(fb->format->format) && + vop_plane_state->global_alpha != 0xff) { + DRM_ERROR("Pixel alpha and global alpha can't be enabled at the same time\n"); + return -EINVAL; + } + if (state->src_w >> 16 < 4 || state->src_h >> 16 < 4 || state->crtc_w < 4 || state->crtc_h < 4) { DRM_ERROR("Invalid size: %dx%d->%dx%d, min size is 4x4\n",