[PATCH 00/16] drm/i915: Introduce 'fb_pin' parent interface

Ville Syrjala
2026-04-23T16:53:53Z

From: Ville Syrjälä <ville.syrjala@linux.intel.com>

Abstract the fb pin/unpin stuff under a new 'fb_pin' parent
interface. The interface is fairly low level so that the i915/xe
side doesn't need access to any display specific data structures.

There are perhaps some needless extra layers on the i915/xe side
afterwards, but we can clean those out later. There are also some
rough corners left in the initial fb code, but I'll be following
up with a separate series to fix/clean up that whole thing.

Ville Syrjälä (16):
drm/i915: Introduce intel_parent_fb_pin_get_map()
drm/i915: Move intel_fb_pin_params to the parent interface
drm/i915: Move the i915_dpt_offset()==0 assert
drm/i915: Reorganize intel_plane_pin_fb() a bit
drm/i915: Introduce i915_fb_pin_dpt_(un)pin()
drm/i915: Introduce i915_fb_pin_ggtt_(un)pin()
drm/xe: Move the FORCE_WC assert into __xe_pin_fb_vma()
drm/xe: Kill the fbdev vma reuse hack
drm/xe: Reorganize intel_plane_pin_fb() a bit
drm/xe: Introduce xe_fb_pin_dpt_(un)pin()
drm/xe: Introduce xe_fb_pin_ggtt_(un)pin()
drm/xe: Restructure reuse_vma()
drm/i915: Introduce the main fb_pin parent interface
drm/i915/fbdev: Use intel_parent_fb_pin_ggtt_(un)pin()
drm/xe: Use xe_fb_pin_ggtt_pin() for the initial FB pin
drm/i915: Consolidate the intel_plane_(un)pin_fb() implementations

drivers/gpu/drm/i915/display/intel_cursor.c | 1 -
drivers/gpu/drm/i915/display/intel_fb_pin.h | 40 ----
drivers/gpu/drm/i915/display/intel_fbdev.c | 22 +-
drivers/gpu/drm/i915/display/intel_fbdev.h | 4 +-
drivers/gpu/drm/i915/display/intel_parent.c | 60 +++++
drivers/gpu/drm/i915/display/intel_parent.h | 34 +++
drivers/gpu/drm/i915/display/intel_plane.c | 122 ++++++++++-
drivers/gpu/drm/i915/display/intel_plane.h | 3 +
drivers/gpu/drm/i915/i915_driver.c | 2 +
drivers/gpu/drm/i915/i915_fb_pin.c | 205 +++++++-----------
drivers/gpu/drm/i915/i915_fb_pin.h | 9 +
drivers/gpu/drm/xe/display/xe_display.c | 2 +
drivers/gpu/drm/xe/display/xe_fb_pin.c | 145 +++++++------
drivers/gpu/drm/xe/display/xe_fb_pin.h | 21 ++
drivers/gpu/drm/xe/display/xe_initial_plane.c | 18 +-
include/drm/intel/display_parent_interface.h | 42 ++++
16 files changed, 472 insertions(+), 258 deletions(-)
delete mode 100644 drivers/gpu/drm/i915/display/intel_fb_pin.h
create mode 100644 drivers/gpu/drm/i915/i915_fb_pin.h
create mode 100644 drivers/gpu/drm/xe/display/xe_fb_pin.h

--
2.52.0