From 85a2c71550eacbad7bf6214ececd7c00aa345455 Mon Sep 17 00:00:00 2001 From: Arthur Heymans Date: Wed, 24 Jan 2018 13:10:18 +0100 Subject: [PATCH] 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 Reviewed-on: https://review.coreboot.org/23403 Tested-by: build bot (Jenkins) Reviewed-by: Nico Huber Reviewed-by: Matt DeVillier --- ...loadPkg-Use-correct-BytesPerScanLine.patch | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 payloads/external/tianocore/patches/07_CorebootPayloadPkg-Use-correct-BytesPerScanLine.patch diff --git a/payloads/external/tianocore/patches/07_CorebootPayloadPkg-Use-correct-BytesPerScanLine.patch b/payloads/external/tianocore/patches/07_CorebootPayloadPkg-Use-correct-BytesPerScanLine.patch new file mode 100644 index 0000000000..6370efca23 --- /dev/null +++ b/payloads/external/tianocore/patches/07_CorebootPayloadPkg-Use-correct-BytesPerScanLine.patch @@ -0,0 +1,31 @@ +From 07dec11fe965e73cfef7df38af70c945b6ff21a2 Mon Sep 17 00:00:00 2001 +From: Arthur Heymans +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 + +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 +