summaryrefslogtreecommitdiff
path: root/CorebootPayloadPkg
diff options
context:
space:
mode:
authorBenjamin You <benjamin.you@intel.com>2018-01-30 16:38:45 +0800
committerBenjamin You <benjamin.you@intel.com>2018-02-05 13:58:30 +0800
commitc0d9813cec397c293d89c79678335a71df7d4f6e (patch)
tree4f1d565a5f87ea3ed71473e8437e5be7155175c9 /CorebootPayloadPkg
parent3fad4a952795cdb3886085b62ccdeb46f6784ac9 (diff)
downloadedk2-c0d9813cec397c293d89c79678335a71df7d4f6e.zip
edk2-c0d9813cec397c293d89c79678335a71df7d4f6e.tar.gz
edk2-c0d9813cec397c293d89c79678335a71df7d4f6e.tar.bz2
CorebootPayloadPkg/FbGop: Produces correct PixelsPerScanLine
According to UEFI Spec, EFI_GRAPHICS_OUTPUT_PROTOCOL.Mode->Info-> PixelsPerScanLine may contain padding pixel elements outside the area covered by HorizontalResolution for performance reasons or due to hardware restrictions. CorebootPayloadPkg's FbGop driver doesn't follow this requirement, and produces PixelsPerScanLine simply as HorizontalResolution. This needs to be fixed to reflect the real length of a framebuffer scanline. Cc: Maurice Ma <maurice.ma@intel.com> Cc: Prince Agyeman <prince.agyeman@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Benjamin You <benjamin.you@intel.com> Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>
Diffstat (limited to 'CorebootPayloadPkg')
-rw-r--r--CorebootPayloadPkg/FbGop/FbGop.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/CorebootPayloadPkg/FbGop/FbGop.c b/CorebootPayloadPkg/FbGop/FbGop.c
index 6790617..ecafc95 100644
--- a/CorebootPayloadPkg/FbGop/FbGop.c
+++ b/CorebootPayloadPkg/FbGop/FbGop.c
@@ -893,7 +893,7 @@ FbGopCheckForVbe (
FbGopPrivate->GraphicsOutput.Mode->Info->VerticalResolution = VerticalResolution;
FbGopPrivate->GraphicsOutput.Mode->Info->PixelFormat = CurrentModeData->PixelFormat;
CopyMem (&(FbGopPrivate->GraphicsOutput.Mode->Info->PixelInformation), &mPixelBitMask, sizeof (EFI_PIXEL_BITMASK));
- FbGopPrivate->GraphicsOutput.Mode->Info->PixelsPerScanLine = HorizontalResolution;
+ FbGopPrivate->GraphicsOutput.Mode->Info->PixelsPerScanLine = (UINT32)(BytesPerScanLine * 8 / BitsPerPixel);
FbGopPrivate->GraphicsOutput.Mode->SizeOfInfo = sizeof(EFI_GRAPHICS_OUTPUT_MODE_INFORMATION);
FbGopPrivate->GraphicsOutput.Mode->FrameBufferBase = (EFI_PHYSICAL_ADDRESS) (UINTN) CurrentModeData->LinearFrameBuffer;
FbGopPrivate->GraphicsOutput.Mode->FrameBufferSize = CurrentModeData->FrameBufferSize;