payloads/tianocore: Add a patch to use the proper BytesPerscanline
This fixes tianocore garbled framebuffer when 'x_resolution * bits_per_pixel / 8' is not equal to 'bytes_per_line'. This patch was also send to the edk2-devel mailing list: https://lists.01.org/pipermail/edk2-devel/2018-January/020436.html Tested on Thinkpad X220 with libgfxinit on 1366x768 display. Change-Id: Ib9eaf692f86d416cd4ec3cc73a8b0aa0a28a38dd Signed-off-by: Arthur Heymans <arthur@aheymans.xyz> Reviewed-on: https://review.coreboot.org/23403 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Nico Huber <nico.h@gmx.de> Reviewed-by: Matt DeVillier <matt.devillier@gmail.com>
This commit is contained in:
parent
4ad1f7d67e
commit
85a2c71550
31
payloads/external/tianocore/patches/07_CorebootPayloadPkg-Use-correct-BytesPerScanLine.patch
vendored
Normal file
31
payloads/external/tianocore/patches/07_CorebootPayloadPkg-Use-correct-BytesPerScanLine.patch
vendored
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
From 07dec11fe965e73cfef7df38af70c945b6ff21a2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Arthur Heymans <arthur@aheymans.xyz>
|
||||||
|
Date: Wed, 24 Jan 2018 10:07:08 +0100
|
||||||
|
Subject: [PATCH] CorebootPayloadPkg: Use correct BytesPerScanLine
|
||||||
|
|
||||||
|
Fetch BytesPerScanLine from coreboot table to reflect how the actual
|
||||||
|
framebuffer is set up instead of guessing it from the horizontal
|
||||||
|
resolution.
|
||||||
|
|
||||||
|
This fixes a garbled display when HorizontalResolution * (BitsPerPixel
|
||||||
|
/ 8) and pFbInfo->BytesPerScanLine don't match.
|
||||||
|
|
||||||
|
Contributed-under: TianoCore Contribution Agreement 1.1
|
||||||
|
Signed-off-by: Arthur Heymans <arthur@aheymans.xyz>
|
||||||
|
|
||||||
|
diff --git a/CorebootPayloadPkg/FbGop/FbGop.c b/CorebootPayloadPkg/FbGop/FbGop.c
|
||||||
|
index 37d6def7f7..6790617033 100644
|
||||||
|
--- a/CorebootPayloadPkg/FbGop/FbGop.c
|
||||||
|
+++ b/CorebootPayloadPkg/FbGop/FbGop.c
|
||||||
|
@@ -822,7 +822,7 @@ FbGopCheckForVbe (
|
||||||
|
BitsPerPixel = pFbInfo->BitsPerPixel;
|
||||||
|
HorizontalResolution = pFbInfo->HorizontalResolution;
|
||||||
|
VerticalResolution = pFbInfo->VerticalResolution;
|
||||||
|
- BytesPerScanLine = HorizontalResolution * (BitsPerPixel / 8);
|
||||||
|
+ BytesPerScanLine = pFbInfo->BytesPerScanLine;
|
||||||
|
|
||||||
|
ModeBuffer = (FB_VIDEO_MODE_DATA *) AllocatePool (
|
||||||
|
ModeNumber * sizeof (FB_VIDEO_MODE_DATA)
|
||||||
|
--
|
||||||
|
2.16.1
|
||||||
|
|
Loading…
Reference in New Issue