aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
Diffstat (limited to 'arch')
-rw-r--r--arch/ia64/kernel/acpi.c26
-rw-r--r--arch/x86/Kconfig3
-rw-r--r--arch/x86/kernel/acpi/boot.c40
-rw-r--r--arch/x86/kernel/cpu/cpufreq/speedstep-lib.c5
-rw-r--r--arch/x86/kernel/srat_32.c2
5 files changed, 19 insertions, 57 deletions
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c
index 00b5d08f6da8..d20a3cc8b424 100644
--- a/arch/ia64/kernel/acpi.c
+++ b/arch/ia64/kernel/acpi.c
@@ -69,6 +69,20 @@ unsigned int acpi_cpei_phys_cpuid;
69 69
70unsigned long acpi_wakeup_address = 0; 70unsigned long acpi_wakeup_address = 0;
71 71
72#ifdef CONFIG_IA64_GENERIC
73static unsigned long __init acpi_find_rsdp(void)
74{
75 unsigned long rsdp_phys = 0;
76
77 if (efi.acpi20 != EFI_INVALID_TABLE_ADDR)
78 rsdp_phys = efi.acpi20;
79 else if (efi.acpi != EFI_INVALID_TABLE_ADDR)
80 printk(KERN_WARNING PREFIX
81 "v1.0/r0.71 tables no longer supported\n");
82 return rsdp_phys;
83}
84#endif
85
72const char __init * 86const char __init *
73acpi_get_sysname(void) 87acpi_get_sysname(void)
74{ 88{
@@ -631,18 +645,6 @@ static int __init acpi_parse_fadt(struct acpi_table_header *table)
631 return 0; 645 return 0;
632} 646}
633 647
634unsigned long __init acpi_find_rsdp(void)
635{
636 unsigned long rsdp_phys = 0;
637
638 if (efi.acpi20 != EFI_INVALID_TABLE_ADDR)
639 rsdp_phys = efi.acpi20;
640 else if (efi.acpi != EFI_INVALID_TABLE_ADDR)
641 printk(KERN_WARNING PREFIX
642 "v1.0/r0.71 tables no longer supported\n");
643 return rsdp_phys;
644}
645
646int __init acpi_boot_init(void) 648int __init acpi_boot_init(void)
647{ 649{
648 650
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index fd4265007053..3954ae96b0c7 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -98,6 +98,9 @@ config ARCH_HAS_ILOG2_U32
98config ARCH_HAS_ILOG2_U64 98config ARCH_HAS_ILOG2_U64
99 def_bool n 99 def_bool n
100 100
101config ARCH_HAS_CPU_IDLE_WAIT
102 def_bool y
103
101config GENERIC_CALIBRATE_DELAY 104config GENERIC_CALIBRATE_DELAY
102 def_bool y 105 def_bool y
103 106
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index d2a58431a074..fc8825d4b996 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -587,25 +587,6 @@ int acpi_unregister_ioapic(acpi_handle handle, u32 gsi_base)
587 587
588EXPORT_SYMBOL(acpi_unregister_ioapic); 588EXPORT_SYMBOL(acpi_unregister_ioapic);
589 589
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) 590static int __init acpi_parse_sbf(struct acpi_table_header *table)
610{ 591{
611 struct acpi_table_boot *sb; 592 struct acpi_table_boot *sb;
@@ -748,27 +729,6 @@ static int __init acpi_parse_fadt(struct acpi_table_header *table)
748 return 0; 729 return 0;
749} 730}
750 731
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 732#ifdef CONFIG_X86_LOCAL_APIC
773/* 733/*
774 * Parse LAPIC entries in MADT 734 * Parse LAPIC entries in MADT
diff --git a/arch/x86/kernel/cpu/cpufreq/speedstep-lib.c b/arch/x86/kernel/cpu/cpufreq/speedstep-lib.c
index 76c3ab0da468..98d4fdb7dc04 100644
--- a/arch/x86/kernel/cpu/cpufreq/speedstep-lib.c
+++ b/arch/x86/kernel/cpu/cpufreq/speedstep-lib.c
@@ -189,10 +189,7 @@ static unsigned int pentium4_get_frequency(void)
189 printk(KERN_DEBUG "speedstep-lib: couldn't detect FSB speed. Please send an e-mail to <linux@brodo.de>\n"); 189 printk(KERN_DEBUG "speedstep-lib: couldn't detect FSB speed. Please send an e-mail to <linux@brodo.de>\n");
190 190
191 /* Multiplier. */ 191 /* Multiplier. */
192 if (c->x86_model < 2) 192 mult = msr_lo >> 24;
193 mult = msr_lo >> 27;
194 else
195 mult = msr_lo >> 24;
196 193
197 dprintk("P4 - FSB %u kHz; Multiplier %u; Speed %u kHz\n", fsb, mult, (fsb * mult)); 194 dprintk("P4 - FSB %u kHz; Multiplier %u; Speed %u kHz\n", fsb, mult, (fsb * mult));
198 195
diff --git a/arch/x86/kernel/srat_32.c b/arch/x86/kernel/srat_32.c
index 2bf6903cb444..b72e61359c36 100644
--- a/arch/x86/kernel/srat_32.c
+++ b/arch/x86/kernel/srat_32.c
@@ -274,7 +274,7 @@ int __init get_memcfg_from_srat(void)
274 int tables = 0; 274 int tables = 0;
275 int i = 0; 275 int i = 0;
276 276
277 rsdp_address = acpi_find_rsdp(); 277 rsdp_address = acpi_os_get_root_pointer();
278 if (!rsdp_address) { 278 if (!rsdp_address) {
279 printk("%s: System description tables not found\n", 279 printk("%s: System description tables not found\n",
280 __FUNCTION__); 280 __FUNCTION__);