Received: by 2002:a25:8b12:0:0:0:0:0 with SMTP id i18csp866393ybl; Thu, 22 Aug 2019 06:10:11 -0700 (PDT) X-Google-Smtp-Source: APXvYqw/4pKE2rRA7XZ+b3yFfuAPWQ65rwJUCUvqsyXYpTnLMQmnGwE4bhTo8L9eDUGe4g5sOLKA X-Received: by 2002:a17:902:860b:: with SMTP id f11mr19204902plo.48.1566479411556; Thu, 22 Aug 2019 06:10:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1566479411; cv=none; d=google.com; s=arc-20160816; b=wu160pRipdGnJjjHbokm6924lQdjXg0bhEeTs7VSGeavZwTnQzZLLJI9g/Unig2aDX ZuDZ+G5pgi352HOU2Pr22+RA/Ab2BWBGAMp2WfetCTdg8zLoVUfy1ibpLY6708mYDsnA KcrnhDVkGfvFDoGFjmAYhmxLNY7OX/USH0XoBMAiJWvauMXNOarPhNVoiewtP/wwuvZK m1bXGw3V5ry/WuIMf2A2dd1lGDfdIYuAQIKPMIfkpwM29+TIoMD3CmtmAwktbjbqzcGU U4TvWc7fSfYo3AidnttPVOOxllLfUj5zW3q1LJEAFUS11ZtZdWFiUttFKENqCcNp2oQJ 70GA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from; bh=9B90kuGwu40X6ExS6HtNdt5Dj2sYlmbGKgD650ZMYKA=; b=YgVCnuS73lfsp9RLfZP8hPSFQOWyLUjJ02u67lhMmDyzKz2si0HvQYAP497ql5bqjP di/CWFDNdZbqkk5s93jvLtASpJPKzSYLjFLODLjEYwiuObxn51iX67U5o91Nzk5e+ieQ ohgXaNTJno7AFvuXtbpYRN9Ea3v6r0oMVQVF5xJZxhg1W8NMLH450lOfeNe9m5BQnrcG XX8vTBG++ttg888KNKDxPatirWSraung4ACh+GzBtQk8heRZ5wAKXBXAKQCVPGsjZzeY 2UaGAV435J7aaPzcG71c4Eem1rBP2rBL7rhbuHBRbomHUQ9VAJV+1PboL6JV0x7e7/Nx UONA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id y193si16596546pgd.108.2019.08.22.06.09.56; Thu, 22 Aug 2019 06:10:11 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=redhat.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732272AbfHVJrB (ORCPT + 99 others); Thu, 22 Aug 2019 05:47:01 -0400 Received: from mx1.redhat.com ([209.132.183.28]:39974 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1732235AbfHVJrB (ORCPT ); Thu, 22 Aug 2019 05:47:01 -0400 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 3A7B77FDCD; Thu, 22 Aug 2019 09:47:01 +0000 (UTC) Received: from sirius.home.kraxel.org (ovpn-116-60.ams2.redhat.com [10.36.116.60]) by smtp.corp.redhat.com (Postfix) with ESMTP id 9338F6B49C; Thu, 22 Aug 2019 09:46:58 +0000 (UTC) Received: by sirius.home.kraxel.org (Postfix, from userid 1000) id CFB4C16E32; Thu, 22 Aug 2019 11:46:57 +0200 (CEST) From: Gerd Hoffmann To: dri-devel@lists.freedesktop.org Cc: Gerd Hoffmann , David Airlie , Daniel Vetter , virtualization@lists.linux-foundation.org (open list:VIRTIO GPU DRIVER), linux-kernel@vger.kernel.org (open list) Subject: [PATCH v2] drm/virtio: add plane check Date: Thu, 22 Aug 2019 11:46:57 +0200 Message-Id: <20190822094657.27483-1-kraxel@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Thu, 22 Aug 2019 09:47:01 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Use drm_atomic_helper_check_plane_state() to sanity check the plane state. Signed-off-by: Gerd Hoffmann --- drivers/gpu/drm/virtio/virtgpu_plane.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/drm/virtio/virtgpu_plane.c b/drivers/gpu/drm/virtio/virtgpu_plane.c index a492ac3f4a7e..fe5efb2de90d 100644 --- a/drivers/gpu/drm/virtio/virtgpu_plane.c +++ b/drivers/gpu/drm/virtio/virtgpu_plane.c @@ -84,7 +84,22 @@ static const struct drm_plane_funcs virtio_gpu_plane_funcs = { static int virtio_gpu_plane_atomic_check(struct drm_plane *plane, struct drm_plane_state *state) { - return 0; + bool is_cursor = plane->type == DRM_PLANE_TYPE_CURSOR; + struct drm_crtc_state *crtc_state; + int ret; + + if (!state->fb || !state->crtc) + return 0; + + crtc_state = drm_atomic_get_crtc_state(state->state, state->crtc); + if (IS_ERR(crtc_state)) + return PTR_ERR(crtc_state); + + ret = drm_atomic_helper_check_plane_state(state, crtc_state, + DRM_PLANE_HELPER_NO_SCALING, + DRM_PLANE_HELPER_NO_SCALING, + is_cursor, true); + return ret; } static void virtio_gpu_primary_plane_update(struct drm_plane *plane, -- 2.18.1