From: Ville Syrjala <ville.syrjala@linux.intel.com>
To: intel-gfx@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Subject: [PATCH 15/16] drm/xe: Use xe_fb_pin_ggtt_pin() for the initial FB pin
Date: Thu, 23 Apr 2026 19:53:44 +0300 [thread overview]
Message-ID: <20260423165346.20884-16-ville.syrjala@linux.intel.com> (raw)
In-Reply-To: <20260423165346.20884-1-ville.syrjala@linux.intel.com>
From: Ville Syrjälä <ville.syrjala@linux.intel.com>
Use xe_fb_pin_ggtt_pin() instead of intel_fb_pin_to_ggtt() for
the initial FB pin. We want to get rid of intel_fb_pin_to_ggtt()
and just use the new fb_pin parent interface.
This still isn't quite the final solution since we bypass the
actual parent interface and call the implementation directly.
But sorting that out will require more cleanup to the initial
FB code.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/xe/display/xe_fb_pin.c | 21 +++++--------------
drivers/gpu/drm/xe/display/xe_fb_pin.h | 12 +++++++++++
drivers/gpu/drm/xe/display/xe_initial_plane.c | 18 ++++++++++------
3 files changed, 29 insertions(+), 22 deletions(-)
diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.c b/drivers/gpu/drm/xe/display/xe_fb_pin.c
index c3171625d150..c92c30ceba36 100644
--- a/drivers/gpu/drm/xe/display/xe_fb_pin.c
+++ b/drivers/gpu/drm/xe/display/xe_fb_pin.c
@@ -413,22 +413,11 @@ static void __xe_unpin_fb_vma(struct i915_vma *vma)
kfree(vma);
}
-struct i915_vma *
-intel_fb_pin_to_ggtt(struct drm_gem_object *obj,
- const struct intel_fb_pin_params *pin_params,
- int *out_fence_id)
-{
- if (out_fence_id)
- *out_fence_id = -1;
-
- return __xe_pin_fb_vma(obj, false, pin_params);
-}
-
-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,
- u32 *out_offset,
- int *out_fence_id)
+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,
+ u32 *out_offset,
+ int *out_fence_id)
{
struct i915_vma *ggtt_vma;
diff --git a/drivers/gpu/drm/xe/display/xe_fb_pin.h b/drivers/gpu/drm/xe/display/xe_fb_pin.h
index 8a42d4009f5d..20dd8a99a25f 100644
--- a/drivers/gpu/drm/xe/display/xe_fb_pin.h
+++ b/drivers/gpu/drm/xe/display/xe_fb_pin.h
@@ -4,6 +4,18 @@
#ifndef __XE_FB_PIN_H__
#define __XE_FB_PIN_H__
+#include <linux/types.h>
+
+struct drm_gem_object;
+struct i915_vma;
+struct intel_fb_pin_params;
+
+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,
+ u32 *out_offset,
+ int *out_fence_id);
+
extern const struct intel_display_fb_pin_interface xe_display_fb_pin_interface;
#endif /* __XE_FB_PIN_H__ */
diff --git a/drivers/gpu/drm/xe/display/xe_initial_plane.c b/drivers/gpu/drm/xe/display/xe_initial_plane.c
index 8e3c0c4b81fe..02b46cc3b6df 100644
--- a/drivers/gpu/drm/xe/display/xe_initial_plane.c
+++ b/drivers/gpu/drm/xe/display/xe_initial_plane.c
@@ -7,12 +7,16 @@
#include "regs/xe_gtt_defs.h"
-#include "intel_display_types.h"
+/* FIXME move intel_remapped_info_size() & co. */
#include "intel_fb.h"
-#include "intel_fb_pin.h"
+
+/* FIXME move intel_initial_plane_config */
+#include "intel_display_types.h"
+
#include "xe_bo.h"
#include "xe_display_bo.h"
#include "xe_display_vma.h"
+#include "xe_fb_pin.h"
#include "xe_ggtt.h"
#include "xe_mmio.h"
#include "xe_vram_types.h"
@@ -137,14 +141,16 @@ xe_initial_plane_setup(struct drm_plane_state *_plane_state,
struct intel_fb_pin_params pin_params = {
.view = &plane_state->view.gtt,
};
+ u32 offset;
+ int ret;
- vma = intel_fb_pin_to_ggtt(intel_fb_bo(fb), &pin_params, NULL);
- if (IS_ERR(vma))
- return PTR_ERR(vma);
+ ret = xe_fb_pin_ggtt_pin(intel_fb_bo(fb), &pin_params, &vma, &offset, NULL);
+ if (ret)
+ return ret;
plane_state->ggtt_vma = vma;
- plane_state->surf = xe_ggtt_node_addr(plane_state->ggtt_vma->node);
+ plane_state->surf = offset;
plane_config->vma = vma;
--
2.52.0
next prev parent reply other threads:[~2026-04-23 16:55 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-23 16:53 [PATCH 00/16] drm/i915: Introduce 'fb_pin' parent interface Ville Syrjala
2026-04-23 16:53 ` [PATCH 01/16] drm/i915: Introduce intel_parent_fb_pin_get_map() Ville Syrjala
2026-04-24 9:14 ` Jani Nikula
2026-04-23 16:53 ` [PATCH 02/16] drm/i915: Move intel_fb_pin_params to the parent interface Ville Syrjala
2026-04-24 9:19 ` Jani Nikula
2026-04-23 16:53 ` [PATCH 03/16] drm/i915: Move the i915_dpt_offset()==0 assert Ville Syrjala
2026-04-24 9:19 ` Jani Nikula
2026-04-23 16:53 ` [PATCH 04/16] drm/i915: Reorganize intel_plane_pin_fb() a bit Ville Syrjala
2026-04-24 9:55 ` Jani Nikula
2026-04-23 16:53 ` [PATCH 05/16] drm/i915: Introduce i915_fb_pin_dpt_(un)pin() Ville Syrjala
2026-04-24 9:56 ` Jani Nikula
2026-04-23 16:53 ` [PATCH 06/16] drm/i915: Introduce i915_fb_pin_ggtt_(un)pin() Ville Syrjala
2026-04-24 9:59 ` Jani Nikula
2026-04-23 16:53 ` [PATCH 07/16] drm/xe: Move the FORCE_WC assert into __xe_pin_fb_vma() Ville Syrjala
2026-04-24 10:02 ` Jani Nikula
2026-04-23 16:53 ` [PATCH 08/16] drm/xe: Kill the fbdev vma reuse hack Ville Syrjala
2026-04-24 10:06 ` Jani Nikula
2026-04-23 16:53 ` [PATCH 09/16] drm/xe: Reorganize intel_plane_pin_fb() a bit Ville Syrjala
2026-04-24 10:07 ` Jani Nikula
2026-04-23 16:53 ` [PATCH 10/16] drm/xe: Introduce xe_fb_pin_dpt_(un)pin() Ville Syrjala
2026-04-24 10:12 ` Jani Nikula
2026-04-23 16:53 ` [PATCH 11/16] drm/xe: Introduce xe_fb_pin_ggtt_(un)pin() Ville Syrjala
2026-04-24 10:13 ` Jani Nikula
2026-04-23 16:53 ` [PATCH 12/16] drm/xe: Restructure reuse_vma() Ville Syrjala
2026-04-24 10:30 ` Jani Nikula
2026-04-30 16:19 ` [PATCH v2 " Ville Syrjala
2026-04-23 16:53 ` [PATCH 13/16] drm/i915: Introduce the main fb_pin parent interface Ville Syrjala
2026-04-24 10:48 ` Jani Nikula
2026-04-24 10:55 ` Ville Syrjälä
2026-04-23 16:53 ` [PATCH 14/16] drm/i915/fbdev: Use intel_parent_fb_pin_ggtt_(un)pin() Ville Syrjala
2026-04-24 12:54 ` Jani Nikula
2026-04-23 16:53 ` Ville Syrjala [this message]
2026-04-24 12:58 ` [PATCH 15/16] drm/xe: Use xe_fb_pin_ggtt_pin() for the initial FB pin Jani Nikula
2026-04-23 16:53 ` [PATCH 16/16] drm/i915: Consolidate the intel_plane_(un)pin_fb() implementations Ville Syrjala
2026-04-24 13:30 ` Jani Nikula
2026-04-27 12:08 ` Ville Syrjälä
2026-04-23 17:01 ` ✗ CI.checkpatch: warning for drm/i915: Introduce 'fb_pin' parent interface Patchwork
2026-04-23 17:02 ` ✓ CI.KUnit: success " Patchwork
2026-04-30 18:10 ` ✗ CI.checkpatch: warning for drm/i915: Introduce 'fb_pin' parent interface (rev2) Patchwork
2026-04-30 18:11 ` ✓ CI.KUnit: success " Patchwork
2026-04-30 19:15 ` ✗ Xe.CI.BAT: failure " Patchwork
2026-05-01 6:29 ` ✓ Xe.CI.FULL: success " Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260423165346.20884-16-ville.syrjala@linux.intel.com \
--to=ville.syrjala@linux.intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox