File grub2-efi_gop-avoid-low-resolution.patch of Package grub2.20869
---
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");
}