011fe81
From 3fd909cbba26f1f76a64aa095937b00cd1785570 Mon Sep 17 00:00:00 2001
481bf3b
From: Paulo Flabiano Smorigo <pfsmorigo@br.ibm.com>
481bf3b
Date: Tue, 11 Jun 2013 15:14:05 -0300
58fe9aa
Subject: [PATCH 113/152] Disable GRUB video support for IBM power machines
481bf3b
481bf3b
Should fix the problem in bugzilla:
481bf3b
https://bugzilla.redhat.com/show_bug.cgi?id=973205
481bf3b
---
481bf3b
 grub-core/kern/ieee1275/cmain.c  | 5 ++++-
481bf3b
 grub-core/video/ieee1275.c       | 9 ++++++---
481bf3b
 include/grub/ieee1275/ieee1275.h | 2 ++
481bf3b
 3 files changed, 12 insertions(+), 4 deletions(-)
481bf3b
481bf3b
diff --git a/grub-core/kern/ieee1275/cmain.c b/grub-core/kern/ieee1275/cmain.c
011fe81
index 3e12e6b..3e14f53 100644
481bf3b
--- a/grub-core/kern/ieee1275/cmain.c
481bf3b
+++ b/grub-core/kern/ieee1275/cmain.c
011fe81
@@ -90,7 +90,10 @@ grub_ieee1275_find_options (void)
011fe81
   }
481bf3b
 
481bf3b
   if (rc >= 0 && grub_strncmp (tmp, "IBM", 3) == 0)
481bf3b
-    grub_ieee1275_set_flag (GRUB_IEEE1275_FLAG_NO_TREE_SCANNING_FOR_DISKS);
481bf3b
+    {
481bf3b
+      grub_ieee1275_set_flag (GRUB_IEEE1275_FLAG_NO_TREE_SCANNING_FOR_DISKS);
481bf3b
+      grub_ieee1275_set_flag (GRUB_IEEE1275_FLAG_DISABLE_VIDEO_SUPPORT);
481bf3b
+    }
481bf3b
 
481bf3b
   /* Old Macs have no key repeat, newer ones have fully working one.
481bf3b
      The ones inbetween when repeated key generates an escaoe sequence
481bf3b
diff --git a/grub-core/video/ieee1275.c b/grub-core/video/ieee1275.c
481bf3b
index 0b150ec..813ab38 100644
481bf3b
--- a/grub-core/video/ieee1275.c
481bf3b
+++ b/grub-core/video/ieee1275.c
481bf3b
@@ -351,9 +351,12 @@ static struct grub_video_adapter grub_video_ieee1275_adapter =
481bf3b
 
481bf3b
 GRUB_MOD_INIT(ieee1275_fb)
481bf3b
 {
481bf3b
-  find_display ();
481bf3b
-  if (display)
481bf3b
-    grub_video_register (&grub_video_ieee1275_adapter);
481bf3b
+  if (! grub_ieee1275_test_flag (GRUB_IEEE1275_FLAG_DISABLE_VIDEO_SUPPORT))
481bf3b
+    {
481bf3b
+      find_display ();
481bf3b
+      if (display)
481bf3b
+        grub_video_register (&grub_video_ieee1275_adapter);
481bf3b
+    }
481bf3b
 }
481bf3b
 
481bf3b
 GRUB_MOD_FINI(ieee1275_fb)
481bf3b
diff --git a/include/grub/ieee1275/ieee1275.h b/include/grub/ieee1275/ieee1275.h
78a3d7d
index 6a21f5d..663935d 100644
481bf3b
--- a/include/grub/ieee1275/ieee1275.h
481bf3b
+++ b/include/grub/ieee1275/ieee1275.h
78a3d7d
@@ -146,6 +146,8 @@ enum grub_ieee1275_flag
481bf3b
   GRUB_IEEE1275_FLAG_BROKEN_REPEAT,
481bf3b
 
481bf3b
   GRUB_IEEE1275_FLAG_CURSORONOFF_ANSI_BROKEN,
481bf3b
+
481bf3b
+  GRUB_IEEE1275_FLAG_DISABLE_VIDEO_SUPPORT
481bf3b
 };
481bf3b
 
481bf3b
 extern int EXPORT_FUNC(grub_ieee1275_test_flag) (enum grub_ieee1275_flag flag);
481bf3b
-- 
37b39b7
1.9.3
481bf3b