[PATCH 08/10] drm/i915: Reject X/Y tiled BIOS FB if we don't have fenced regions

Ville Syrjala
2026-04-10T15:05:34Z

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

The CPU always needs linear view into the BIOS FB, and for X/Y tiled
buffers that is achieved by the use of a fenced region. If the
underlying driver doesn't support fenced regions then we can't keep
the X/Y tiled BIOS FB. i915 has fenced regions, xe does not.

Probably not a big deal since I don't think we've seen tiled BIOS
FBs outside of some MacBooks. See eg. commit d9a515867bdb
("drm/i915/gen9+: Fix initial readout for Y tiled framebuffers").

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/intel_initial_plane.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/i915/display/intel_initial_plane.c b/drivers/gpu/drm/i915/display/intel_initial_plane.c
index 5a5adf738d4a..55b6cdded126 100644
--- a/drivers/gpu/drm/i915/display/intel_initial_plane.c
+++ b/drivers/gpu/drm/i915/display/intel_initial_plane.c
@@ -79,9 +79,13 @@ intel_alloc_initial_plane_obj(struct intel_display *display,

switch (fb->modifier) {
case DRM_FORMAT_MOD_LINEAR:
+ break;
case I915_FORMAT_MOD_X_TILED:
case I915_FORMAT_MOD_Y_TILED:
- break;
+ /* fenced region needed for linear CPU access to tiled FB */
+ if (intel_parent_has_fenced_regions(display))
+ break;
+ fallthrough;
default:
drm_dbg_kms(display->drm, "Unsupported modifier for initial FB: 0x%llx\n",
fb->modifier);
--
2.52.0