From patchwork Mon Dec 6 17:26:13 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zack Rusin X-Patchwork-Id: 12660683 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 1CCE4C433FE for ; Mon, 6 Dec 2021 17:26:58 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 9CB8473AA3; Mon, 6 Dec 2021 17:26:41 +0000 (UTC) Received: from letterbox.kde.org (letterbox.kde.org [IPv6:2001:41c9:1:41e::242]) by gabe.freedesktop.org (Postfix) with ESMTPS id 32DBD73AE5 for ; Mon, 6 Dec 2021 17:26:38 +0000 (UTC) Received: from vertex.localdomain (pool-108-36-85-85.phlapa.fios.verizon.net [108.36.85.85]) (Authenticated sender: zack) by letterbox.kde.org (Postfix) with ESMTPSA id 9658729F82C; Mon, 6 Dec 2021 17:26:36 +0000 (GMT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kde.org; s=users; t=1638811597; bh=R+wNNa3hzAUg3hVhWr/Cga8ZV/xMaxWvbjEWIYpM7zI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UN54XODhpLRCjUKxlag7zF2MHFas8n1vy4E4CBBy7S9S70G0Os0nwfA48wRnQz+JM LpV0xNAHVEFuMzy1UjPHBHPzBFK/uoKfPTot+FSBrjEcb4OVfiOsOc7OmD2Bz3tTaL 03bL2plMSKkBL/9Xa8tCZxC9rKvmrchZu9GWj50ZoKFH+Skj6xAg0HAhqzFwhusGD3 eltfpbqVjxZEO4gK28JTzK8FM069LSNhlGgWvGnPGQlQ/Kj/3IbFbM16aBEeGPtmkJ LuXhlhHLTbPsZ3np+7W3b1TjQkUER7TNkrBUEuw5eHvKpmfmW42s4/agD7Lqd0uNYB plFWFDRwLPQqQ== From: Zack Rusin To: dri-devel@freedesktop.org Subject: [PATCH 05/12] drm/vmwgfx: Implement create_handle on drm_framebuffer_funcs Date: Mon, 6 Dec 2021 12:26:13 -0500 Message-Id: <20211206172620.3139754-6-zack@kde.org> X-Mailer: git-send-email 2.32.0 In-Reply-To: <20211206172620.3139754-1-zack@kde.org> References: <20211206172620.3139754-1-zack@kde.org> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: krastevm@vmware.com, mombasawalam@vmware.com Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" From: Zack Rusin The fb handle code assumes it deals with GEM objects. Because vmwgfx buffer objects were not actually GEM objects we were not able to implement that interface. Now that vmwgfx supports GEM buffer objects we can trivially implement create_handle for buffer object backed framebuffers. Among others this gets IGT's kms_getfb test passing. Signed-off-by: Zack Rusin Reviewed-by: Martin Krastev --- drivers/gpu/drm/vmwgfx/vmwgfx_kms.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c index b4bbb5c47bdd..4e693e8de2c3 100644 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c @@ -987,6 +987,16 @@ static int vmw_kms_new_framebuffer_surface(struct vmw_private *dev_priv, * Buffer-object framebuffer code */ +static int vmw_framebuffer_bo_create_handle(struct drm_framebuffer *fb, + struct drm_file *file_priv, + unsigned int *handle) +{ + struct vmw_framebuffer_bo *vfbd = + vmw_framebuffer_to_vfbd(fb); + + return drm_gem_handle_create(file_priv, &vfbd->buffer->base.base, handle); +} + static void vmw_framebuffer_bo_destroy(struct drm_framebuffer *framebuffer) { struct vmw_framebuffer_bo *vfbd = @@ -1059,6 +1069,7 @@ static int vmw_framebuffer_bo_dirty_ext(struct drm_framebuffer *framebuffer, } static const struct drm_framebuffer_funcs vmw_framebuffer_bo_funcs = { + .create_handle = vmw_framebuffer_bo_create_handle, .destroy = vmw_framebuffer_bo_destroy, .dirty = vmw_framebuffer_bo_dirty_ext, };