Hi Jani
Please review the patch and tell is something else is required.
From: Ashish Arora <ashisharora.linux@xxxxxxxxxxx>
Sent: Friday, 7 January, 2022, 8:32 pm
To: jani.nikula@xxxxxxxxxxxxxxx; joonas.lahtinen@xxxxxxxxxxxxxxx; rodrigo.vivi@xxxxxxxxx
Cc: intel-gfx@xxxxxxxxxxxxxxxxxxxxx; Linux Kernel Mailing List
Subject: [PATCH - v2] drm/i915: Discard large BIOS framebuffers causing display corruption.
Sent: Friday, 7 January, 2022, 8:32 pm
To: jani.nikula@xxxxxxxxxxxxxxx; joonas.lahtinen@xxxxxxxxxxxxxxx; rodrigo.vivi@xxxxxxxxx
Cc: intel-gfx@xxxxxxxxxxxxxxxxxxxxx; Linux Kernel Mailing List
Subject: [PATCH - v2] drm/i915: Discard large BIOS framebuffers causing display corruption.
From: Ashish Arora <ashisharora.linux@xxxxxxxxxxx>
On certain 4k panels, the BIOS framebuffer is larger than what panel
requires causing display corruption. Introduce a check for the same.
Signed-off-by: Ashish Arora <ashisharora.linux@xxxxxxxxxxx>
---
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 adc3a81be..0a64184df 100644
--- a/drivers/gpu/drm/i915/display/intel_fbdev.c
+++ b/drivers/gpu/drm/i915/display/intel_fbdev.c
@@ -194,10 +194,10 @@ static int intelfb_create(struct drm_fb_helper *helper,
int ret;
if (intel_fb &&
- (sizes->fb_width > intel_fb->base.width ||
- sizes->fb_height > intel_fb->base.height)) {
+ (sizes->fb_width != intel_fb->base.width ||
+ sizes->fb_height != intel_fb->base.height)) {
drm_dbg_kms(&dev_priv->drm,
- "BIOS fb too small (%dx%d), we require (%dx%d),"
+ "BIOS fb not valid (%dx%d), we require (%dx%d),"
" releasing it\n",
intel_fb->base.width, intel_fb->base.height,
sizes->fb_width, sizes->fb_height);
--
2.25.1
On certain 4k panels, the BIOS framebuffer is larger than what panel
requires causing display corruption. Introduce a check for the same.
Signed-off-by: Ashish Arora <ashisharora.linux@xxxxxxxxxxx>
---
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 adc3a81be..0a64184df 100644
--- a/drivers/gpu/drm/i915/display/intel_fbdev.c
+++ b/drivers/gpu/drm/i915/display/intel_fbdev.c
@@ -194,10 +194,10 @@ static int intelfb_create(struct drm_fb_helper *helper,
int ret;
if (intel_fb &&
- (sizes->fb_width > intel_fb->base.width ||
- sizes->fb_height > intel_fb->base.height)) {
+ (sizes->fb_width != intel_fb->base.width ||
+ sizes->fb_height != intel_fb->base.height)) {
drm_dbg_kms(&dev_priv->drm,
- "BIOS fb too small (%dx%d), we require (%dx%d),"
+ "BIOS fb not valid (%dx%d), we require (%dx%d),"
" releasing it\n",
intel_fb->base.width, intel_fb->base.height,
sizes->fb_width, sizes->fb_height);
--
2.25.1