From mboxrd@z Thu Jan 1 00:00:00 1970 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 188AAFDEE2B for ; Thu, 23 Apr 2026 16:54:56 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id AC54710F1FB; Thu, 23 Apr 2026 16:54:55 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="H6q9MpR/"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.8]) by gabe.freedesktop.org (Postfix) with ESMTPS id 97E4F10F1FB; Thu, 23 Apr 2026 16:54:54 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1776963294; x=1808499294; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=Gz+hUAMRLD9b1f352K7A5z+TTarPzYKqzJtCKRHNXj8=; b=H6q9MpR/rtTGSxd4ae94iikY3qiB+TbBPbmGL+2kNjuvfGE5TrQoc9dA yL2gcD8B71sCYLgQPRx5FlevPHvf1mRv5Iet6bxKXYFnlniT1Qrg1zrRs 4hHEr5iDvsN4MbOzyxT4Zd4dJV3H/vED15cgbJdl3S36R6QbA+3MadAJr FnSDvEGmAFOlwU9SAnLXtqsUY8kibIPgsCh7tEJ8Qeb0Z4HkuEGC8uJKf 4BrJsZC+Q9piXPNT5HBFoqYbJl9Tw5zeTzFNeIMTkBrxaLul8yWF0Fqn4 XPvOPQrw9rOEGMyWtMkL8qeL3tnUqnPbEgfXxoyYyv5xy1t7Pz7tunyx0 g==; X-CSE-ConnectionGUID: ZunKzwfRS0ScVIWW8FDzfA== X-CSE-MsgGUID: R1h6q7DxT9y2qRtjUNc76Q== X-IronPort-AV: E=McAfee;i="6800,10657,11765"; a="95498823" X-IronPort-AV: E=Sophos;i="6.23,195,1770624000"; d="scan'208";a="95498823" Received: from orviesa003.jf.intel.com ([10.64.159.143]) by fmvoesa102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Apr 2026 09:54:52 -0700 X-CSE-ConnectionGUID: Ss+IyiMoR+++tTHHfc8b7w== X-CSE-MsgGUID: gkzA0MWSQL+Ai5QGeWof6Q== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.23,195,1770624000"; d="scan'208";a="236696419" Received: from ijarvine-mobl1.ger.corp.intel.com (HELO localhost) ([10.245.244.188]) by ORVIESA003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 23 Apr 2026 09:54:51 -0700 From: Ville Syrjala To: intel-gfx@lists.freedesktop.org Cc: intel-xe@lists.freedesktop.org Subject: [PATCH 14/16] drm/i915/fbdev: Use intel_parent_fb_pin_ggtt_(un)pin() Date: Thu, 23 Apr 2026 19:53:43 +0300 Message-ID: <20260423165346.20884-15-ville.syrjala@linux.intel.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260423165346.20884-1-ville.syrjala@linux.intel.com> References: <20260423165346.20884-1-ville.syrjala@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Organization: Intel Finland Oy - BIC 0357606-4 - c/o Alberga Business Park, 6 krs Bertel Jungin Aukio 5, 02600 Espoo, Finland Content-Transfer-Encoding: 8bit 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: Ville Syrjälä Replace the intel_fb_pin_to_ggtt() and intel_fb_unpin_vma() with the new abstract parent interface (intel_parent_fb_pin_ggtt_(un)pin()). xe no longer needs intel_fb_unpin_vma(), and in i915 it now becomes and internal function to i915_fb_pin. Signed-off-by: Ville Syrjälä --- drivers/gpu/drm/i915/display/intel_fb_pin.h | 2 -- drivers/gpu/drm/i915/display/intel_fbdev.c | 14 +++++++------- drivers/gpu/drm/i915/i915_fb_pin.c | 2 +- drivers/gpu/drm/xe/display/xe_fb_pin.c | 5 ----- 4 files changed, 8 insertions(+), 15 deletions(-) diff --git a/drivers/gpu/drm/i915/display/intel_fb_pin.h b/drivers/gpu/drm/i915/display/intel_fb_pin.h index 84530f20d7d1..6ff17d3e2cf5 100644 --- a/drivers/gpu/drm/i915/display/intel_fb_pin.h +++ b/drivers/gpu/drm/i915/display/intel_fb_pin.h @@ -20,8 +20,6 @@ intel_fb_pin_to_ggtt(struct drm_gem_object *obj, const struct intel_fb_pin_params *pin_params, int *out_fence_id); -void intel_fb_unpin_vma(struct i915_vma *vma, int fence_id); - int intel_plane_pin_fb(struct intel_plane_state *new_plane_state, const struct intel_plane_state *old_plane_state); void intel_plane_unpin_fb(struct intel_plane_state *old_plane_state); diff --git a/drivers/gpu/drm/i915/display/intel_fbdev.c b/drivers/gpu/drm/i915/display/intel_fbdev.c index aa2701795caa..8463f88149a5 100644 --- a/drivers/gpu/drm/i915/display/intel_fbdev.c +++ b/drivers/gpu/drm/i915/display/intel_fbdev.c @@ -53,7 +53,6 @@ #include "intel_display_rpm.h" #include "intel_display_types.h" #include "intel_fb.h" -#include "intel_fb_pin.h" #include "intel_fbdev.h" #include "intel_frontbuffer.h" #include "intel_parent.h" @@ -133,6 +132,7 @@ static int intel_fbdev_mmap(struct fb_info *info, struct vm_area_struct *vma) static void intel_fbdev_fb_destroy(struct fb_info *info) { struct drm_fb_helper *fb_helper = info->par; + struct intel_display *display = to_intel_display(fb_helper->client.dev); struct intel_fbdev *ifbdev = to_intel_fbdev(fb_helper); drm_fb_helper_fini(fb_helper); @@ -142,7 +142,7 @@ static void intel_fbdev_fb_destroy(struct fb_info *info) * the info->screen_base mmaping. Leaking the VMA is simpler than * trying to rectify all the possible error paths leading here. */ - intel_fb_unpin_vma(ifbdev->vma, -1); + intel_parent_fb_pin_ggtt_unpin(display, ifbdev->vma, -1); drm_framebuffer_remove(fb_helper->fb); drm_client_release(&fb_helper->client); @@ -274,6 +274,7 @@ int intel_fbdev_driver_fbdev_probe(struct drm_fb_helper *helper, struct i915_vma *vma; bool prealloc = false; struct drm_gem_object *obj; + u32 offset; int ret; ifbdev->fb = NULL; @@ -321,11 +322,10 @@ int intel_fbdev_driver_fbdev_probe(struct drm_fb_helper *helper, DRM_MODE_ROTATE_0); pin_params.needs_low_address = intel_plane_needs_low_address(display); - vma = intel_fb_pin_to_ggtt(obj, &pin_params, NULL); - if (IS_ERR(vma)) { - ret = PTR_ERR(vma); + ret = intel_parent_fb_pin_ggtt_pin(display, obj, &pin_params, + &vma, &offset, NULL); + if (ret) goto out_unlock; - } helper->funcs = &intel_fb_helper_funcs; helper->fb = &fb->base; @@ -356,7 +356,7 @@ int intel_fbdev_driver_fbdev_probe(struct drm_fb_helper *helper, return 0; out_unpin: - intel_fb_unpin_vma(vma, -1); + intel_parent_fb_pin_ggtt_unpin(display, vma, -1); out_unlock: intel_display_rpm_put(display, wakeref); diff --git a/drivers/gpu/drm/i915/i915_fb_pin.c b/drivers/gpu/drm/i915/i915_fb_pin.c index 1f08e364d569..cedefee46fbf 100644 --- a/drivers/gpu/drm/i915/i915_fb_pin.c +++ b/drivers/gpu/drm/i915/i915_fb_pin.c @@ -222,7 +222,7 @@ intel_fb_pin_to_ggtt(struct drm_gem_object *_obj, return vma; } -void intel_fb_unpin_vma(struct i915_vma *vma, int fence_id) +static void intel_fb_unpin_vma(struct i915_vma *vma, int fence_id) { if (fence_id >= 0) i915_vma_unpin_fence(vma); diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.c b/drivers/gpu/drm/xe/display/xe_fb_pin.c index e2b6ce3686a3..c3171625d150 100644 --- a/drivers/gpu/drm/xe/display/xe_fb_pin.c +++ b/drivers/gpu/drm/xe/display/xe_fb_pin.c @@ -424,11 +424,6 @@ intel_fb_pin_to_ggtt(struct drm_gem_object *obj, return __xe_pin_fb_vma(obj, false, pin_params); } -void intel_fb_unpin_vma(struct i915_vma *vma, int fence_id) -{ - __xe_unpin_fb_vma(vma); -} - static int xe_fb_pin_ggtt_pin(struct drm_gem_object *obj, const struct intel_fb_pin_params *pin_params, struct i915_vma **out_ggtt_vma, -- 2.52.0