[PATCH] fix DMI for EFI

From: Brian Maly
Date: Sat Feb 28 2009 - 20:33:46 EST



DMI tables are loaded by EFI, so the dmi calls must happen after efi_init() and not before. Currently Apple hardware uses DMI to determine the framebuffer mappings for efifb. Without DMI working you also have no video on MacBook Pro. This patch resolves the DMI issue for EFI hardware (DMI is now properly detected at boot), and additionally efifb now loads on Apple hardware (i.e. video works).


Signed-off-by: Brian Maly <bmaly@redhat>

setup.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

--- a/arch/x86/kernel/setup.c 2009-02-08 15:37:27.000000000 -0500
+++ b/arch/x86/kernel/setup.c 2009-03-01 01:09:41.000000000 -0500
@@ -770,10 +770,6 @@ void __init setup_arch(char **cmdline_p)

finish_e820_parsing();

- dmi_scan_machine();
-
- dmi_check_system(bad_bios_dmi_table);
-
/*
* VMware detection requires dmi to be available, so this
* needs to be done after dmi_scan_machine, for the BP.
@@ -792,6 +788,10 @@ void __init setup_arch(char **cmdline_p)
if (efi_enabled)
efi_init();

+ dmi_scan_machine();
+
+ dmi_check_system(bad_bios_dmi_table);
+
#ifdef CONFIG_X86_32
if (ppro_with_ram_bug()) {
e820_update_range(0x70000000ULL, 0x40000ULL, E820_RAM,