[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,