[PATCH 09/10] drm/i915: Completely reject DPT BIOS FBs.

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

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

Our BIOS FB handling can't deal with DPT, and instead everything
just assumes a direct GGTT mapping. Reject any BIOS FB using DPT.
Most likely this should never happen anyway.

Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
---
drivers/gpu/drm/i915/display/intel_initial_plane.c | 9 +++++++++
drivers/gpu/drm/i915/display/skl_universal_plane.c | 6 ------
2 files changed, 9 insertions(+), 6 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_initial_plane.c b/drivers/gpu/drm/i915/display/intel_initial_plane.c
index 55b6cdded126..e3d1b2d1669c 100644
--- a/drivers/gpu/drm/i915/display/intel_initial_plane.c
+++ b/drivers/gpu/drm/i915/display/intel_initial_plane.c
@@ -92,6 +92,15 @@ intel_alloc_initial_plane_obj(struct intel_display *display,
return NULL;
}

+ /*
+ * Would need to preserve the DPT, its GGTT
+ * mapping, and the actual FB memory.
+ */
+ if (intel_fb_modifier_uses_dpt(display, fb->modifier)) {
+ drm_dbg_kms(display->drm, "DPT not supported for initial FB\n");
+ return NULL;
+ }
+
return display->parent->initial_plane->alloc_obj(display->drm, plane_config);
}

diff --git a/drivers/gpu/drm/i915/display/skl_universal_plane.c b/drivers/gpu/drm/i915/display/skl_universal_plane.c
index 00c863e378a1..5aef8123d8b8 100644
--- a/drivers/gpu/drm/i915/display/skl_universal_plane.c
+++ b/drivers/gpu/drm/i915/display/skl_universal_plane.c
@@ -3148,12 +3148,6 @@ skl_get_initial_plane_config(struct intel_crtc *crtc,

fb->format = drm_get_format_info(display->drm, fourcc, fb->modifier);

- if (!display->params.enable_dpt &&
- intel_fb_modifier_uses_dpt(display, fb->modifier)) {
- drm_dbg_kms(display->drm, "DPT disabled, skipping initial FB\n");
- goto error;
- }
-
/*
* DRM_MODE_ROTATE_ is counter clockwise to stay compatible with Xrandr
* while i915 HW rotation is clockwise, that's why this swapping.
--
2.52.0