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