From: Jani Nikula <jani.nikula@linux.intel.com>
To: Ville Syrjala <ville.syrjala@linux.intel.com>,
intel-gfx@lists.freedesktop.org
Cc: intel-xe@lists.freedesktop.org
Subject: Re: [PATCH 14/16] drm/i915/fbdev: Use intel_parent_fb_pin_ggtt_(un)pin()
Date: Fri, 24 Apr 2026 15:54:14 +0300 [thread overview]
Message-ID: <9a2adaacf189bc66e1a3ef29665dcdbf5ae0ce80@intel.com> (raw)
In-Reply-To: <20260423165346.20884-15-ville.syrjala@linux.intel.com>
On Thu, 23 Apr 2026, Ville Syrjala <ville.syrjala@linux.intel.com> wrote:
> From: Ville Syrjälä <ville.syrjala@linux.intel.com>
>
> 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ä <ville.syrjala@linux.intel.com>
Reviewed-by: Jani Nikula <jani.nikula@intel.com>
> ---
> 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,
--
Jani Nikula, Intel
next prev parent reply other threads:[~2026-04-24 12:54 UTC|newest]
Thread overview: 44+ 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 [this message]
2026-04-23 16:53 ` [PATCH 15/16] drm/xe: Use xe_fb_pin_ggtt_pin() for the initial FB pin Ville Syrjala
2026-04-24 12:58 ` 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-23 17:25 ` ✗ Fi.CI.BUILD: failure " Patchwork
2026-04-30 18:05 ` ✗ i915.CI.BAT: failure for drm/i915: Introduce 'fb_pin' parent interface (rev2) Patchwork
2026-04-30 18:10 ` ✗ CI.checkpatch: warning " 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=9a2adaacf189bc66e1a3ef29665dcdbf5ae0ce80@intel.com \
--to=jani.nikula@linux.intel.com \
--cc=intel-gfx@lists.freedesktop.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=ville.syrjala@linux.intel.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.