15a2072
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
15a2072
From: Alexander Graf <agraf@suse.de>
15a2072
Date: Wed, 1 Feb 2017 23:10:45 +0100
15a2072
Subject: [PATCH] grub-core/video/efi_gop.c: Add support for BLT_ONLY adapters
15a2072
15a2072
EFI GOP has support for multiple different bitness types of frame buffers
15a2072
and for a special "BLT only" type which is always defined to be RGBx.
15a2072
15a2072
Because grub2 doesn't ever directly access the frame buffer but instead
15a2072
only renders graphics via the BLT interface anyway, we can easily support
15a2072
these adapters.
15a2072
15a2072
The reason this has come up now is the emerging support for virtio-gpu
15a2072
in OVMF. That adapter does not have the notion of a memory mapped frame
15a2072
buffer and thus is BLT only.
15a2072
15a2072
Signed-off-by: Alexander Graf <agraf@suse.de>
15a2072
---
15a2072
 grub-core/video/efi_gop.c          | 2 ++
15a2072
 include/grub/efi/graphics_output.h | 3 ++-
15a2072
 2 files changed, 4 insertions(+), 1 deletion(-)
15a2072
15a2072
diff --git a/grub-core/video/efi_gop.c b/grub-core/video/efi_gop.c
15a2072
index 7f9d1c2dfa1..c9e40e8d4e9 100644
15a2072
--- a/grub-core/video/efi_gop.c
15a2072
+++ b/grub-core/video/efi_gop.c
15a2072
@@ -121,6 +121,7 @@ grub_video_gop_get_bpp (struct grub_efi_gop_mode_info *in)
15a2072
     {
15a2072
     case GRUB_EFI_GOT_BGRA8:
15a2072
     case GRUB_EFI_GOT_RGBA8:
15a2072
+    case GRUB_EFI_GOT_BLT_ONLY:
15a2072
       return 32;
15a2072
 
15a2072
     case GRUB_EFI_GOT_BITMASK:
15a2072
@@ -187,6 +188,7 @@ grub_video_gop_fill_real_mode_info (unsigned mode,
15a2072
   switch (in->pixel_format)
15a2072
     {
15a2072
     case GRUB_EFI_GOT_RGBA8:
15a2072
+    case GRUB_EFI_GOT_BLT_ONLY:
15a2072
       out->red_mask_size = 8;
15a2072
       out->red_field_pos = 0;
15a2072
       out->green_mask_size = 8;
15a2072
diff --git a/include/grub/efi/graphics_output.h b/include/grub/efi/graphics_output.h
15a2072
index 12977741192..e4388127c66 100644
15a2072
--- a/include/grub/efi/graphics_output.h
15a2072
+++ b/include/grub/efi/graphics_output.h
15a2072
@@ -28,7 +28,8 @@ typedef enum
15a2072
   {
15a2072
     GRUB_EFI_GOT_RGBA8,
15a2072
     GRUB_EFI_GOT_BGRA8,
15a2072
-    GRUB_EFI_GOT_BITMASK
15a2072
+    GRUB_EFI_GOT_BITMASK,
15a2072
+    GRUB_EFI_GOT_BLT_ONLY,
15a2072
   }
15a2072
   grub_efi_gop_pixel_format_t;
15a2072