[PATCH] drm/i915/fbdev: Discard large BIOS framebuffers

From: Atharva Tiwari
Date: Tue Jan 21 2025 - 05:42:26 EST


On certain 4K panels, the BIOS framebuffer
exceeds the panel's required dimensions,
leading to display corruption.
This patch introduces a validation check to address the issue.

Signed-off-by: Atharva Tiwari <evepolonium@xxxxxxxxx>
---
drivers/gpu/drm/i915/display/intel_fbdev.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/gpu/drm/i915/display/intel_fbdev.c b/drivers/gpu/drm/i915/display/intel_fbdev.c
index 00852ff5b247..e8cf06772c31 100644
--- a/drivers/gpu/drm/i915/display/intel_fbdev.c
+++ b/drivers/gpu/drm/i915/display/intel_fbdev.c
@@ -197,10 +197,10 @@ static int intelfb_create(struct drm_fb_helper *helper,
ifbdev->fb = NULL;

if (fb &&
- (sizes->fb_width > fb->base.width ||
- sizes->fb_height > fb->base.height)) {
+ (sizes->fb_width != fb->base.width ||
+ sizes->fb_height != fb->base.height)) {
drm_dbg_kms(&dev_priv->drm,
- "BIOS fb too small (%dx%d), we require (%dx%d),"
+ "BIOS fb dimensions mismatch (%dx%d), we require (%dx%d),"
" releasing it\n",
fb->base.width, fb->base.height,
sizes->fb_width, sizes->fb_height);
--
2.39.5