diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c index a0efdc02b4db..296c866fe3c0 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_vop.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop.c @@ -1795,6 +1795,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 (drm_rect_width(src) >> 16 < 4 || drm_rect_height(src) >> 16 < 4 || drm_rect_width(dest) < 4 || drm_rect_width(dest) < 4) { DRM_ERROR("Invalid size: %dx%d->%dx%d, min size is 4x4\n",