瀏覽代碼

x86: fix DMI on EFI

Impact: reactivate DMI quirks on EFI hardware

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>
Acked-by: Yinghai Lu <yinghai@kernel.org>
Cc: ying.huang@intel.com
LKML-Reference: <49ADEDA3.1030406@redhat.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>

 arch/x86/kernel/setup.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)
Brian Maly 16 年之前
父節點
當前提交
ff0c087490
共有 1 個文件被更改,包括 3 次插入2 次删除
  1. 3 2
      arch/x86/kernel/setup.c

+ 3 - 2
arch/x86/kernel/setup.c

@@ -770,6 +770,9 @@ void __init setup_arch(char **cmdline_p)
 
 
 	finish_e820_parsing();
 	finish_e820_parsing();
 
 
+	if (efi_enabled)
+		efi_init();
+
 	dmi_scan_machine();
 	dmi_scan_machine();
 
 
 	dmi_check_system(bad_bios_dmi_table);
 	dmi_check_system(bad_bios_dmi_table);
@@ -789,8 +792,6 @@ void __init setup_arch(char **cmdline_p)
 	insert_resource(&iomem_resource, &data_resource);
 	insert_resource(&iomem_resource, &data_resource);
 	insert_resource(&iomem_resource, &bss_resource);
 	insert_resource(&iomem_resource, &bss_resource);
 
 
-	if (efi_enabled)
-		efi_init();
 
 
 #ifdef CONFIG_X86_32
 #ifdef CONFIG_X86_32
 	if (ppro_with_ram_bug()) {
 	if (ppro_with_ram_bug()) {