[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [linux-2.6.18-xen] [IA64] Fix Linux VGA autodetection



# HG changeset patch
# User Alex Williamson <alex.williamson@xxxxxx>
# Date 1185390988 21600
# Node ID a504ee7aae902a1c9ab5d9d270433603cecd6750
# Parent  b3ac98591e60cdea898aa0357c8da1334b6e26c8
[IA64] Fix Linux VGA autodetection

This patch re-orders setup_arch in xenlinux slightly.  This allows us
to check if conswitchp was setup early by the HCDP code to point to a
VGA console.  Also fix a bug w/ zero'ing the preferred console name string.

Signed-off-by: Alex Williamson <alex.williamson@xxxxxx>
---
 arch/ia64/kernel/setup.c |   51 +++++++++++++++++++++++------------------------
 1 files changed, 25 insertions(+), 26 deletions(-)

diff -r b3ac98591e60 -r a504ee7aae90 arch/ia64/kernel/setup.c
--- a/arch/ia64/kernel/setup.c  Wed Jul 25 13:07:30 2007 -0600
+++ b/arch/ia64/kernel/setup.c  Wed Jul 25 13:16:28 2007 -0600
@@ -526,22 +526,6 @@ setup_arch (char **cmdline_p)
        acpi_boot_init();
 #endif
 
-#ifdef CONFIG_VT
-       if (!conswitchp) {
-# if defined(CONFIG_DUMMY_CONSOLE)
-               conswitchp = &dummy_con;
-# endif
-# if defined(CONFIG_VGA_CONSOLE)
-               /*
-                * Non-legacy systems may route legacy VGA MMIO range to system
-                * memory.  vga_con probes the MMIO hole, so memory looks like
-                * a VGA device to it.  The EFI memory map can tell us if it's
-                * memory so we can avoid this problem.
-                */
-               if (efi_mem_type(0xA0000) != EFI_CONVENTIONAL_MEMORY)
-                       conswitchp = &vga_con;
-# endif
-       }
 #ifdef CONFIG_XEN
        if (is_running_on_xen()) {
                shared_info_t *s = HYPERVISOR_shared_info;
@@ -552,12 +536,6 @@ setup_arch (char **cmdline_p)
                       "flags=0x%x\n", s->arch.start_info_pfn,
                       xen_start_info->nr_pages, xen_start_info->flags);
 
-               if (!is_initial_xendomain()) {
-#if !defined(CONFIG_VT) || !defined(CONFIG_DUMMY_CONSOLE)
-                       conswitchp = NULL;
-#endif
-               }
-               
                /*
                 * If a console= is NOT specified, we assume using the
                 * xencons console is desired.  By default, this is ttyS0
@@ -567,7 +545,8 @@ setup_arch (char **cmdline_p)
                        char *p, *q, name[5];
                        int offset = 0;
 
-                       if (is_initial_xendomain())
+                       memset(name, 0, sizeof(name));
+                       if (is_initial_xendomain() && conswitchp != &vga_con)
                                strncpy(name, "ttyS", 4);
                        else
                                strncpy(name, "tty", 3);
@@ -599,13 +578,33 @@ setup_arch (char **cmdline_p)
        }
        xencons_early_setup();
 #endif
-#endif
-
+
+#ifdef CONFIG_VT
+       if (!conswitchp) {
+# if defined(CONFIG_DUMMY_CONSOLE)
+               conswitchp = &dummy_con;
+# endif
+# if defined(CONFIG_VGA_CONSOLE)
+               /*
+                * Non-legacy systems may route legacy VGA MMIO range to system
+                * memory.  vga_con probes the MMIO hole, so memory looks like
+                * a VGA device to it.  The EFI memory map can tell us if it's
+                * memory so we can avoid this problem.
+                */
+               if (efi_mem_type(0xA0000) != EFI_CONVENTIONAL_MEMORY)
+                       conswitchp = &vga_con;
+# endif
+       }
+#endif
 
        /* enable IA-64 Machine Check Abort Handling unless disabled */
 #ifdef CONFIG_XEN
-       if (is_running_on_xen() && !is_initial_xendomain())
+       if (is_running_on_xen() && !is_initial_xendomain()) {
                nomca = 1;
+#if !defined(CONFIG_VT) || !defined(CONFIG_DUMMY_CONSOLE)
+               conswitchp = NULL;
+#endif
+       }
 #endif
        if (!nomca)
                ia64_mca_init();

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.