summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVille Syrjälä <ville.syrjala@linux.intel.com>2026-04-10 18:04:48 +0300
committerVille Syrjälä <ville.syrjala@linux.intel.com>2026-04-15 12:38:28 +0300
commit9af46eb338ca408cf72803483ca06b91e0f67746 (patch)
tree8c2515813ce8b730f03459164a19be9fff727151
parenta05eda6f64f88c215d75e68e904d2d9cef3b87db (diff)
downloadlinux-9af46eb338ca408cf72803483ca06b91e0f67746.tar.xz
drm/i915: Completely reject DPT BIOS FBs.
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> Link: https://patch.msgid.link/20260410150449.9699-10-ville.syrjala@linux.intel.com Reviewed-by: Jani Nikula <jani.nikula@intel.com>
-rw-r--r--drivers/gpu/drm/i915/display/intel_initial_plane.c9
-rw-r--r--drivers/gpu/drm/i915/display/skl_universal_plane.c6
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.