aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/acpi/boot.c
diff options
context:
space:
mode:
authorLen Brown <len.brown@intel.com>2008-10-22 23:57:26 -0400
committerLen Brown <len.brown@intel.com>2008-10-23 00:11:07 -0400
commit057316cc6a5b521b332a1d7ccc871cd60c904c74 (patch)
tree4333e608da237c73ff69b10878025cca96dcb4c8 /arch/x86/kernel/acpi/boot.c
parent3e2dab9a1c2deb03c311eb3f83466009147ed4d3 (diff)
parent2515ddc6db8eb49a79f0fe5e67ff09ac7c81eab4 (diff)
Merge branch 'linus' into test
Conflicts: MAINTAINERS arch/x86/kernel/acpi/boot.c arch/x86/kernel/acpi/sleep.c drivers/acpi/Kconfig drivers/pnp/Makefile drivers/pnp/quirks.c Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'arch/x86/kernel/acpi/boot.c')
-rw-r--r--arch/x86/kernel/acpi/boot.c26
1 files changed, 15 insertions, 11 deletions
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index 0c2742f8c4d..53b01a1ae10 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -58,7 +58,6 @@ EXPORT_SYMBOL(acpi_disabled);
58#ifdef CONFIG_X86_64 58#ifdef CONFIG_X86_64
59 59
60#include <asm/proto.h> 60#include <asm/proto.h>
61#include <asm/genapic.h>
62 61
63#else /* X86 */ 62#else /* X86 */
64 63
@@ -97,7 +96,6 @@ static u64 acpi_lapic_addr __initdata = APIC_DEFAULT_PHYS_BASE;
97#warning ACPI uses CMPXCHG, i486 and later hardware 96#warning ACPI uses CMPXCHG, i486 and later hardware
98#endif 97#endif
99 98
100
101/* -------------------------------------------------------------------------- 99/* --------------------------------------------------------------------------
102 Boot-time Configuration 100 Boot-time Configuration
103 -------------------------------------------------------------------------- */ 101 -------------------------------------------------------------------------- */
@@ -255,10 +253,8 @@ static void __cpuinit acpi_register_lapic(int id, u8 enabled)
255 return; 253 return;
256 } 254 }
257 255
258#ifdef CONFIG_X86_32
259 if (boot_cpu_physical_apicid != -1U) 256 if (boot_cpu_physical_apicid != -1U)
260 ver = apic_version[boot_cpu_physical_apicid]; 257 ver = apic_version[boot_cpu_physical_apicid];
261#endif
262 258
263 generic_processor_info(id, ver); 259 generic_processor_info(id, ver);
264} 260}
@@ -777,11 +773,9 @@ static void __init acpi_register_lapic_address(unsigned long address)
777 773
778 set_fixmap_nocache(FIX_APIC_BASE, address); 774 set_fixmap_nocache(FIX_APIC_BASE, address);
779 if (boot_cpu_physical_apicid == -1U) { 775 if (boot_cpu_physical_apicid == -1U) {
780 boot_cpu_physical_apicid = GET_APIC_ID(read_apic_id()); 776 boot_cpu_physical_apicid = read_apic_id();
781#ifdef CONFIG_X86_32
782 apic_version[boot_cpu_physical_apicid] = 777 apic_version[boot_cpu_physical_apicid] =
783 GET_APIC_VERSION(apic_read(APIC_LVR)); 778 GET_APIC_VERSION(apic_read(APIC_LVR));
784#endif
785 } 779 }
786} 780}
787 781
@@ -1263,7 +1257,7 @@ static int __init acpi_parse_madt_ioapic_entries(void)
1263 1257
1264 count = 1258 count =
1265 acpi_table_parse_madt(ACPI_MADT_TYPE_INTERRUPT_OVERRIDE, acpi_parse_int_src_ovr, 1259 acpi_table_parse_madt(ACPI_MADT_TYPE_INTERRUPT_OVERRIDE, acpi_parse_int_src_ovr,
1266 NR_IRQ_VECTORS); 1260 nr_irqs);
1267 if (count < 0) { 1261 if (count < 0) {
1268 printk(KERN_ERR PREFIX 1262 printk(KERN_ERR PREFIX
1269 "Error parsing interrupt source overrides entry\n"); 1263 "Error parsing interrupt source overrides entry\n");
@@ -1283,7 +1277,7 @@ static int __init acpi_parse_madt_ioapic_entries(void)
1283 1277
1284 count = 1278 count =
1285 acpi_table_parse_madt(ACPI_MADT_TYPE_NMI_SOURCE, acpi_parse_nmi_src, 1279 acpi_table_parse_madt(ACPI_MADT_TYPE_NMI_SOURCE, acpi_parse_nmi_src,
1286 NR_IRQ_VECTORS); 1280 nr_irqs);
1287 if (count < 0) { 1281 if (count < 0) {
1288 printk(KERN_ERR PREFIX "Error parsing NMI SRC entry\n"); 1282 printk(KERN_ERR PREFIX "Error parsing NMI SRC entry\n");
1289 /* TBD: Cleanup to allow fallback to MPS */ 1283 /* TBD: Cleanup to allow fallback to MPS */
@@ -1353,7 +1347,9 @@ static void __init acpi_process_madt(void)
1353 acpi_ioapic = 1; 1347 acpi_ioapic = 1;
1354 1348
1355 smp_found_config = 1; 1349 smp_found_config = 1;
1350#ifdef CONFIG_X86_32
1356 setup_apic_routing(); 1351 setup_apic_routing();
1352#endif
1357 } 1353 }
1358 } 1354 }
1359 if (error == -EINVAL) { 1355 if (error == -EINVAL) {
@@ -1423,8 +1419,16 @@ static int __init force_acpi_ht(const struct dmi_system_id *d)
1423 */ 1419 */
1424static int __init dmi_ignore_irq0_timer_override(const struct dmi_system_id *d) 1420static int __init dmi_ignore_irq0_timer_override(const struct dmi_system_id *d)
1425{ 1421{
1426 pr_notice("%s detected: Ignoring BIOS IRQ0 pin2 override\n", d->ident); 1422 /*
1427 acpi_skip_timer_override = 1; 1423 * The ati_ixp4x0_rev() early PCI quirk should have set
1424 * the acpi_skip_timer_override flag already:
1425 */
1426 if (!acpi_skip_timer_override) {
1427 WARN(1, KERN_ERR "ati_ixp4x0 quirk not complete.\n");
1428 pr_notice("%s detected: Ignoring BIOS IRQ0 pin2 override\n",
1429 d->ident);
1430 acpi_skip_timer_override = 1;
1431 }
1428 return 0; 1432 return 0;
1429} 1433}
1430 1434