From patchwork Sun Oct 17 23:41:04 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Dave Airlie X-Patchwork-Id: 12564703 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9AC92C433F5 for ; Sun, 17 Oct 2021 23:41:25 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 57B5A603E9 for ; Sun, 17 Oct 2021 23:41:25 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 57B5A603E9 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id 3930E6E83E; Sun, 17 Oct 2021 23:41:21 +0000 (UTC) Received: from us-smtp-delivery-44.mimecast.com (us-smtp-delivery-44.mimecast.com [205.139.111.44]) by gabe.freedesktop.org (Postfix) with ESMTPS id AF6DD6E838 for ; Sun, 17 Oct 2021 23:41:19 +0000 (UTC) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-430-55G-zsLhNNuhaXJAHeOVYA-1; Sun, 17 Oct 2021 19:41:15 -0400 X-MC-Unique: 55G-zsLhNNuhaXJAHeOVYA-1 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 442138042C3; Sun, 17 Oct 2021 23:41:14 +0000 (UTC) Received: from dreadlord-bne-redhat-com.bne.redhat.com (unknown [10.64.0.157]) by smtp.corp.redhat.com (Postfix) with ESMTP id 252F95D6D5; Sun, 17 Oct 2021 23:41:12 +0000 (UTC) From: Dave Airlie To: intel-gfx@lists.freedesktop.org Cc: jani.nikula@intel.com, ville.syrjala@linux.intel.com, Dave Airlie Date: Mon, 18 Oct 2021 09:41:04 +1000 Message-Id: <20211017234106.2412994-3-airlied@gmail.com> In-Reply-To: <20211017234106.2412994-1-airlied@gmail.com> References: <20211017234106.2412994-1-airlied@gmail.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=airlied@gmail.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: gmail.com Subject: [Intel-gfx] [PATCH 2/4] drm/i915/display: move fbdev pin code into fb_pin X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" From: Dave Airlie This moves the fbdev pin code over and moves the internal interfaces to static. Signed-off-by: Dave Airlie Reviewed-by: Ville Syrjälä --- drivers/gpu/drm/i915/display/intel_fb_pin.c | 37 +++++++++++++++++++-- drivers/gpu/drm/i915/display/intel_fb_pin.h | 15 ++++----- drivers/gpu/drm/i915/display/intel_fbdev.c | 32 ------------------ 3 files changed, 41 insertions(+), 43 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_fb_pin.c b/drivers/gpu/drm/i915/display/intel_fb_pin.c index 3f77f3013584..0beb0aa33337 100644 --- a/drivers/gpu/drm/i915/display/intel_fb_pin.c +++ b/drivers/gpu/drm/i915/display/intel_fb_pin.c @@ -71,7 +71,7 @@ intel_pin_fb_obj_dpt(struct drm_framebuffer *fb, return vma; } -struct i915_vma * +static struct i915_vma * intel_pin_and_fence_fb_obj(struct drm_framebuffer *fb, bool phys_cursor, const struct i915_ggtt_view *view, @@ -199,7 +199,8 @@ intel_pin_and_fence_fb_obj(struct drm_framebuffer *fb, return vma; } -void intel_unpin_fb_vma(struct i915_vma *vma, unsigned long flags) +static void +intel_unpin_fb_vma(struct i915_vma *vma, unsigned long flags) { if (flags & PLANE_HAS_FENCE) i915_vma_unpin_fence(vma); @@ -272,3 +273,35 @@ void intel_plane_unpin_fb(struct intel_plane_state *old_plane_state) intel_dpt_unpin(intel_fb->dpt_vm); } } + +void intel_fbdev_unpin(struct intel_fbdev *ifbdev) +{ + if (ifbdev->vma) + intel_unpin_fb_vma(ifbdev->vma, ifbdev->vma_flags); + ifbdev->vma = NULL; + ifbdev->vma_flags = 0; +} + +int intel_fbdev_pin_and_fence(struct drm_i915_private *dev_priv, + struct intel_fbdev *ifbdev, + void **vaddr) +{ + const struct i915_ggtt_view view = { + .type = I915_GGTT_VIEW_NORMAL, + }; + ifbdev->vma = intel_pin_and_fence_fb_obj(&ifbdev->fb->base, false, + &view, false, &ifbdev->vma_flags); + + if (IS_ERR(ifbdev->vma)) { + return PTR_ERR(ifbdev->vma); + } + + *vaddr = i915_vma_pin_iomap(ifbdev->vma); + if (IS_ERR(*vaddr)) { + intel_fbdev_unpin(ifbdev); + drm_err(&dev_priv->drm, + "Failed to remap framebuffer into virtual memory\n"); + return PTR_ERR(vaddr); + } + return 0; +} diff --git a/drivers/gpu/drm/i915/display/intel_fb_pin.h b/drivers/gpu/drm/i915/display/intel_fb_pin.h index e4fcd0218d9d..88d736264348 100644 --- a/drivers/gpu/drm/i915/display/intel_fb_pin.h +++ b/drivers/gpu/drm/i915/display/intel_fb_pin.h @@ -8,21 +8,18 @@ #include +struct drm_i915_private; struct drm_framebuffer; +struct intel_fbdev; struct i915_vma; struct intel_plane_state; struct i915_ggtt_view; -struct i915_vma * -intel_pin_and_fence_fb_obj(struct drm_framebuffer *fb, - bool phys_cursor, - const struct i915_ggtt_view *view, - bool uses_fence, - unsigned long *out_flags); - -void intel_unpin_fb_vma(struct i915_vma *vma, unsigned long flags); - int intel_plane_pin_fb(struct intel_plane_state *plane_state); void intel_plane_unpin_fb(struct intel_plane_state *old_plane_state); +int intel_fbdev_pin_and_fence(struct drm_i915_private *dev_priv, + struct intel_fbdev *ifbdev, + void **vaddr); +void intel_fbdev_unpin(struct intel_fbdev *ifbdev); #endif diff --git a/drivers/gpu/drm/i915/display/intel_fbdev.c b/drivers/gpu/drm/i915/display/intel_fbdev.c index c3ea9639a4ed..cee85fcc2085 100644 --- a/drivers/gpu/drm/i915/display/intel_fbdev.c +++ b/drivers/gpu/drm/i915/display/intel_fbdev.c @@ -171,38 +171,6 @@ static int intelfb_alloc(struct drm_fb_helper *helper, return 0; } -static void intel_fbdev_unpin(struct intel_fbdev *ifbdev) -{ - if (ifbdev->vma) - intel_unpin_fb_vma(ifbdev->vma, ifbdev->vma_flags); - ifbdev->vma = NULL; - ifbdev->vma_flags = 0; -} - -static int intel_fbdev_pin_and_fence(struct drm_i915_private *dev_priv, - struct intel_fbdev *ifbdev, - void **vaddr) -{ - const struct i915_ggtt_view view = { - .type = I915_GGTT_VIEW_NORMAL, - }; - ifbdev->vma = intel_pin_and_fence_fb_obj(&ifbdev->fb->base, false, - &view, false, &ifbdev->vma_flags); - - if (IS_ERR(ifbdev->vma)) { - return PTR_ERR(ifbdev->vma); - } - - *vaddr = i915_vma_pin_iomap(ifbdev->vma); - if (IS_ERR(*vaddr)) { - intel_fbdev_unpin(ifbdev); - drm_err(&dev_priv->drm, - "Failed to remap framebuffer into virtual memory\n"); - return PTR_ERR(vaddr); - } - return 0; -} - static int intelfb_create(struct drm_fb_helper *helper, struct drm_fb_helper_surface_size *sizes) {