From 1cbe67557f3febb2cb397923a0cffffb82c820d61365c941f7d66575edb0cfc3 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Tue, 29 Jul 2014 10:28:18 +0000 Subject: [PATCH] Accepting request 242829 from home:tiwai:branches:Base:System - Prefer a higher resolution in efi_gop driver if the mode taking over is too small like 640x480 (bnc#887972): grub2-efi_gop-avoid-low-resolution.patch OBS-URL: https://build.opensuse.org/request/show/242829 OBS-URL: https://build.opensuse.org/package/show/Base:System/grub2?expand=0&rev=99 --- grub2-efi_gop-avoid-low-resolution.patch | 39 ++++++++++++++++++++++++ grub2.changes | 7 +++++ grub2.spec | 2 ++ 3 files changed, 48 insertions(+) create mode 100644 grub2-efi_gop-avoid-low-resolution.patch diff --git a/grub2-efi_gop-avoid-low-resolution.patch b/grub2-efi_gop-avoid-low-resolution.patch new file mode 100644 index 0000000..5226539 --- /dev/null +++ b/grub2-efi_gop-avoid-low-resolution.patch @@ -0,0 +1,39 @@ +--- + grub-core/video/efi_gop.c | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +--- a/grub-core/video/efi_gop.c ++++ b/grub-core/video/efi_gop.c +@@ -358,6 +358,7 @@ grub_video_gop_setup (unsigned int width + grub_err_t err; + unsigned bpp; + int found = 0; ++ int avoid_low_resolution = 1; + unsigned long long best_volume = 0; + unsigned int preferred_width = 0, preferred_height = 0; + grub_uint8_t *buffer; +@@ -376,8 +377,11 @@ grub_video_gop_setup (unsigned int width + } + } + ++again: + /* Keep current mode if possible. */ +- if (gop->mode->info) ++ if (gop->mode->info && ++ (!avoid_low_resolution || ++ (gop->mode->info->width >= 800 && gop->mode->info->height >= 600))) + { + bpp = grub_video_gop_get_bpp (gop->mode->info); + if (bpp && ((width == gop->mode->info->width +@@ -450,6 +454,11 @@ grub_video_gop_setup (unsigned int width + + if (!found) + { ++ if (avoid_low_resolution && gop->mode->info) ++ { ++ avoid_low_resolution = 0; ++ goto again; ++ } + grub_dprintf ("video", "GOP: no mode found\n"); + return grub_error (GRUB_ERR_UNKNOWN_DEVICE, "no matching mode found"); + } diff --git a/grub2.changes b/grub2.changes index 87d3a84..3b2288e 100644 --- a/grub2.changes +++ b/grub2.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Tue Jul 29 11:46:54 CEST 2014 - tiwai@suse.de + +- Prefer a higher resolution in efi_gop driver if the mode taking + over is too small like 640x480 (bnc#887972): + grub2-efi_gop-avoid-low-resolution.patch + ------------------------------------------------------------------- Wed Jul 9 16:26:35 UTC 2014 - dvlaeev@suse.com diff --git a/grub2.spec b/grub2.spec index b141efa..d10d109 100644 --- a/grub2.spec +++ b/grub2.spec @@ -178,6 +178,7 @@ Patch228: grub2-xfs-Add-helper-for-inode-size.patch Patch229: grub2-xfs-Fix-termination-loop-for-directory-iteration.patch Patch230: grub2-xfs-Convert-inode-numbers-to-cpu-endianity-immediate.patch Patch231: grub2-xfs-V5-filesystem-format-support.patch +Patch232: grub2-efi_gop-avoid-low-resolution.patch Requires: gettext-runtime %if 0%{?suse_version} >= 1140 @@ -372,6 +373,7 @@ mv po/grub.pot po/%{name}.pot %patch229 -p1 %patch230 -p1 %patch231 -p1 +%patch232 -p1 # Generate po/LINGUAS for message catalogs ... ./linguas.sh