aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/acpi/boot.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel/acpi/boot.c')
-rw-r--r--arch/x86/kernel/acpi/boot.c47
1 files changed, 2 insertions, 45 deletions
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index d2a58431a074..680b7300a489 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -78,7 +78,6 @@ int acpi_ht __initdata = 1; /* enable HT */
78int acpi_lapic; 78int acpi_lapic;
79int acpi_ioapic; 79int acpi_ioapic;
80int acpi_strict; 80int acpi_strict;
81EXPORT_SYMBOL(acpi_strict);
82 81
83u8 acpi_sci_flags __initdata; 82u8 acpi_sci_flags __initdata;
84int acpi_sci_override_gsi __initdata; 83int acpi_sci_override_gsi __initdata;
@@ -106,7 +105,7 @@ enum acpi_irq_model_id acpi_irq_model = ACPI_IRQ_MODEL_PIC;
106#ifdef CONFIG_X86_64 105#ifdef CONFIG_X86_64
107 106
108/* rely on all ACPI tables being in the direct mapping */ 107/* rely on all ACPI tables being in the direct mapping */
109char *__acpi_map_table(unsigned long phys_addr, unsigned long size) 108char *__init __acpi_map_table(unsigned long phys_addr, unsigned long size)
110{ 109{
111 if (!phys_addr || !size) 110 if (!phys_addr || !size)
112 return NULL; 111 return NULL;
@@ -131,7 +130,7 @@ char *__acpi_map_table(unsigned long phys_addr, unsigned long size)
131 * from the fixed base. That's why we start at FIX_IO_APIC_BASE_END and 130 * from the fixed base. That's why we start at FIX_IO_APIC_BASE_END and
132 * count idx down while incrementing the phys address. 131 * count idx down while incrementing the phys address.
133 */ 132 */
134char *__acpi_map_table(unsigned long phys, unsigned long size) 133char *__init __acpi_map_table(unsigned long phys, unsigned long size)
135{ 134{
136 unsigned long base, offset, mapped_size; 135 unsigned long base, offset, mapped_size;
137 int idx; 136 int idx;
@@ -490,8 +489,6 @@ int acpi_register_gsi(u32 gsi, int triggering, int polarity)
490 return irq; 489 return irq;
491} 490}
492 491
493EXPORT_SYMBOL(acpi_register_gsi);
494
495/* 492/*
496 * ACPI based hotplug support for CPU 493 * ACPI based hotplug support for CPU
497 */ 494 */
@@ -587,25 +584,6 @@ int acpi_unregister_ioapic(acpi_handle handle, u32 gsi_base)
587 584
588EXPORT_SYMBOL(acpi_unregister_ioapic); 585EXPORT_SYMBOL(acpi_unregister_ioapic);
589 586
590static unsigned long __init
591acpi_scan_rsdp(unsigned long start, unsigned long length)
592{
593 unsigned long offset = 0;
594 unsigned long sig_len = sizeof("RSD PTR ") - 1;
595
596 /*
597 * Scan all 16-byte boundaries of the physical memory region for the
598 * RSDP signature.
599 */
600 for (offset = 0; offset < length; offset += 16) {
601 if (strncmp((char *)(phys_to_virt(start) + offset), "RSD PTR ", sig_len))
602 continue;
603 return (start + offset);
604 }
605
606 return 0;
607}
608
609static int __init acpi_parse_sbf(struct acpi_table_header *table) 587static int __init acpi_parse_sbf(struct acpi_table_header *table)
610{ 588{
611 struct acpi_table_boot *sb; 589 struct acpi_table_boot *sb;
@@ -748,27 +726,6 @@ static int __init acpi_parse_fadt(struct acpi_table_header *table)
748 return 0; 726 return 0;
749} 727}
750 728
751unsigned long __init acpi_find_rsdp(void)
752{
753 unsigned long rsdp_phys = 0;
754
755 if (efi_enabled) {
756 if (efi.acpi20 != EFI_INVALID_TABLE_ADDR)
757 return efi.acpi20;
758 else if (efi.acpi != EFI_INVALID_TABLE_ADDR)
759 return efi.acpi;
760 }
761 /*
762 * Scan memory looking for the RSDP signature. First search EBDA (low
763 * memory) paragraphs and then search upper memory (E0000-FFFFF).
764 */
765 rsdp_phys = acpi_scan_rsdp(0, 0x400);
766 if (!rsdp_phys)
767 rsdp_phys = acpi_scan_rsdp(0xE0000, 0x20000);
768
769 return rsdp_phys;
770}
771
772#ifdef CONFIG_X86_LOCAL_APIC 729#ifdef CONFIG_X86_LOCAL_APIC
773/* 730/*
774 * Parse LAPIC entries in MADT 731 * Parse LAPIC entries in MADT