x86/acpi: Add a new x86_init_acpi structure to x86_init_ops
Add a new struct x86_init_acpi to x86_init_ops. For now it contains only one init function to get the RSDP table address. Signed-off-by: Juergen Gross <jgross@suse.com> Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com> Acked-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> Cc: Borislav Petkov <bp@alien8.de> Cc: Eric Biederman <ebiederm@xmission.com> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Kees Cook <keescook@chromium.org> Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: boris.ostrovsky@oracle.com Cc: lenb@kernel.org Cc: linux-acpi@vger.kernel.org Cc: xen-devel@lists.xenproject.org Link: http://lkml.kernel.org/r/20180219100906.14265-3-jgross@suse.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
This commit is contained in:
parent
dfc9327ab7
commit
038bac2b02
|
@ -31,6 +31,7 @@
|
|||
#include <asm/mmu.h>
|
||||
#include <asm/mpspec.h>
|
||||
#include <asm/realmode.h>
|
||||
#include <asm/x86_init.h>
|
||||
|
||||
#ifdef CONFIG_ACPI_APEI
|
||||
# include <asm/pgtable_types.h>
|
||||
|
@ -133,6 +134,12 @@ static inline bool acpi_has_cpu_in_madt(void)
|
|||
return !!acpi_lapic;
|
||||
}
|
||||
|
||||
#define ACPI_HAVE_ARCH_GET_ROOT_POINTER
|
||||
static inline u64 acpi_arch_get_root_pointer(void)
|
||||
{
|
||||
return x86_init.acpi.get_root_pointer();
|
||||
}
|
||||
|
||||
#else /* !CONFIG_ACPI */
|
||||
|
||||
#define acpi_lapic 0
|
||||
|
|
|
@ -130,6 +130,14 @@ struct x86_hyper_init {
|
|||
void (*init_mem_mapping)(void);
|
||||
};
|
||||
|
||||
/**
|
||||
* struct x86_init_acpi - x86 ACPI init functions
|
||||
* @get_root_pointer: get RSDP address
|
||||
*/
|
||||
struct x86_init_acpi {
|
||||
u64 (*get_root_pointer)(void);
|
||||
};
|
||||
|
||||
/**
|
||||
* struct x86_init_ops - functions for platform specific setup
|
||||
*
|
||||
|
@ -144,6 +152,7 @@ struct x86_init_ops {
|
|||
struct x86_init_iommu iommu;
|
||||
struct x86_init_pci pci;
|
||||
struct x86_hyper_init hyper;
|
||||
struct x86_init_acpi acpi;
|
||||
};
|
||||
|
||||
/**
|
||||
|
|
|
@ -30,6 +30,7 @@ int __init iommu_init_noop(void) { return 0; }
|
|||
void iommu_shutdown_noop(void) { }
|
||||
bool __init bool_x86_init_noop(void) { return false; }
|
||||
void x86_op_int_noop(int cpu) { }
|
||||
u64 u64_x86_init_noop(void) { return 0; }
|
||||
|
||||
/*
|
||||
* The platform setup functions are preset with the default functions
|
||||
|
@ -91,6 +92,10 @@ struct x86_init_ops x86_init __initdata = {
|
|||
.x2apic_available = bool_x86_init_noop,
|
||||
.init_mem_mapping = x86_init_noop,
|
||||
},
|
||||
|
||||
.acpi = {
|
||||
.get_root_pointer = u64_x86_init_noop,
|
||||
},
|
||||
};
|
||||
|
||||
struct x86_cpuinit_ops x86_cpuinit = {
|
||||
|
|
Loading…
Reference in New Issue