]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - arch/x86/kernel/acpi/boot.c
Merge branch 'linus' into WIP.x86/boot, to fix up conflicts and to pick up updates
[karo-tx-linux.git] / arch / x86 / kernel / acpi / boot.c
index 873552718270f6abadb0928b0a8ae7f38bc56b21..a468f0fdc9075bbdc04d75f5105620c97d0ddf48 100644 (file)
@@ -35,6 +35,7 @@
 #include <linux/bootmem.h>
 #include <linux/ioport.h>
 #include <linux/pci.h>
+#include <linux/efi-bgrt.h>
 
 #include <asm/e820/api.h>
 #include <asm/irqdomain.h>
@@ -724,11 +725,12 @@ int acpi_map_cpu2node(acpi_handle handle, int cpu, int physid)
        return 0;
 }
 
-int acpi_map_cpu(acpi_handle handle, phys_cpuid_t physid, int *pcpu)
+int acpi_map_cpu(acpi_handle handle, phys_cpuid_t physid, u32 acpi_id,
+                int *pcpu)
 {
        int cpu;
 
-       cpu = acpi_register_lapic(physid, U32_MAX, ACPI_MADT_ENABLED);
+       cpu = acpi_register_lapic(physid, acpi_id, ACPI_MADT_ENABLED);
        if (cpu < 0) {
                pr_info(PREFIX "Unable to map lapic to logical cpu number\n");
                return cpu;
@@ -1558,6 +1560,12 @@ int __init early_acpi_boot_init(void)
        return 0;
 }
 
+static int __init acpi_parse_bgrt(struct acpi_table_header *table)
+{
+       efi_bgrt_init(table);
+       return 0;
+}
+
 int __init acpi_boot_init(void)
 {
        /* those are executed after early-quirks are executed */
@@ -1582,6 +1590,8 @@ int __init acpi_boot_init(void)
        acpi_process_madt();
 
        acpi_table_parse(ACPI_SIG_HPET, acpi_parse_hpet);
+       if (IS_ENABLED(CONFIG_ACPI_BGRT))
+               acpi_table_parse(ACPI_SIG_BGRT, acpi_parse_bgrt);
 
        if (!acpi_noirq)
                x86_init.pci.init = pci_acpi_init;