dcavalca / rpms / grub2

Forked from rpms/grub2 3 years ago
Clone

Blame SOURCES/0026-Disable-GRUB-video-support-for-IBM-power-machines.patch

606ea6
From 5cd617fb2727a545de7a22439bd7d1a8e712e85a Mon Sep 17 00:00:00 2001
606ea6
From: Paulo Flabiano Smorigo <pfsmorigo@br.ibm.com>
606ea6
Date: Tue, 11 Jun 2013 15:14:05 -0300
606ea6
Subject: [PATCH 26/34] Disable GRUB video support for IBM power machines
606ea6
606ea6
Should fix the problem in bugzilla:
606ea6
https://bugzilla.redhat.com/show_bug.cgi?id=973205
606ea6
---
606ea6
 grub-core/kern/ieee1275/cmain.c  | 5 ++++-
606ea6
 grub-core/video/ieee1275.c       | 9 ++++++---
606ea6
 include/grub/ieee1275/ieee1275.h | 2 ++
606ea6
 3 files changed, 12 insertions(+), 4 deletions(-)
606ea6
606ea6
diff --git a/grub-core/kern/ieee1275/cmain.c b/grub-core/kern/ieee1275/cmain.c
606ea6
index d92ae14..409c922 100644
606ea6
--- a/grub-core/kern/ieee1275/cmain.c
606ea6
+++ b/grub-core/kern/ieee1275/cmain.c
606ea6
@@ -88,7 +88,10 @@ grub_ieee1275_find_options (void)
606ea6
     is_qemu = 1;
606ea6
 
606ea6
   if (rc >= 0 && grub_strncmp (tmp, "IBM", 3) == 0)
606ea6
-    grub_ieee1275_set_flag (GRUB_IEEE1275_FLAG_NO_TREE_SCANNING_FOR_DISKS);
606ea6
+    {
606ea6
+      grub_ieee1275_set_flag (GRUB_IEEE1275_FLAG_NO_TREE_SCANNING_FOR_DISKS);
606ea6
+      grub_ieee1275_set_flag (GRUB_IEEE1275_FLAG_DISABLE_VIDEO_SUPPORT);
606ea6
+    }
606ea6
 
606ea6
   /* Old Macs have no key repeat, newer ones have fully working one.
606ea6
      The ones inbetween when repeated key generates an escaoe sequence
606ea6
diff --git a/grub-core/video/ieee1275.c b/grub-core/video/ieee1275.c
606ea6
index 0b150ec..813ab38 100644
606ea6
--- a/grub-core/video/ieee1275.c
606ea6
+++ b/grub-core/video/ieee1275.c
606ea6
@@ -351,9 +351,12 @@ static struct grub_video_adapter grub_video_ieee1275_adapter =
606ea6
 
606ea6
 GRUB_MOD_INIT(ieee1275_fb)
606ea6
 {
606ea6
-  find_display ();
606ea6
-  if (display)
606ea6
-    grub_video_register (&grub_video_ieee1275_adapter);
606ea6
+  if (! grub_ieee1275_test_flag (GRUB_IEEE1275_FLAG_DISABLE_VIDEO_SUPPORT))
606ea6
+    {
606ea6
+      find_display ();
606ea6
+      if (display)
606ea6
+        grub_video_register (&grub_video_ieee1275_adapter);
606ea6
+    }
606ea6
 }
606ea6
 
606ea6
 GRUB_MOD_FINI(ieee1275_fb)
606ea6
diff --git a/include/grub/ieee1275/ieee1275.h b/include/grub/ieee1275/ieee1275.h
606ea6
index 2b64a92..29f3a1d 100644
606ea6
--- a/include/grub/ieee1275/ieee1275.h
606ea6
+++ b/include/grub/ieee1275/ieee1275.h
606ea6
@@ -145,6 +145,8 @@ enum grub_ieee1275_flag
606ea6
   GRUB_IEEE1275_FLAG_BROKEN_REPEAT,
606ea6
 
606ea6
   GRUB_IEEE1275_FLAG_CURSORONOFF_ANSI_BROKEN,
606ea6
+
606ea6
+  GRUB_IEEE1275_FLAG_DISABLE_VIDEO_SUPPORT
606ea6
 };
606ea6
 
606ea6
 extern int EXPORT_FUNC(grub_ieee1275_test_flag) (enum grub_ieee1275_flag flag);
606ea6
-- 
606ea6
1.8.4.2
606ea6