if (BAD_MADT_ENTRY(lapic, end))
return -EINVAL;
- acpi_table_print_madt_entry(header);
-
if (lapic->address) {
iounmap((void *) ipi_base_addr);
ipi_base_addr = (unsigned long) ioremap(lapic->address, 0);
if (BAD_MADT_ENTRY(lsapic, end))
return -EINVAL;
- acpi_table_print_madt_entry(header);
-
- printk(KERN_INFO "CPU %d (0x%04x)", total_cpus, (lsapic->id << 8) | lsapic->eid);
-
- if (!lsapic->flags.enabled)
- printk(" disabled");
- else {
- printk(" enabled");
+ if (lsapic->flags.enabled) {
#ifdef CONFIG_SMP
smp_boot_data.cpu_phys_id[available_cpus] = (lsapic->id << 8) | lsapic->eid;
- if (hard_smp_processor_id()
- == (unsigned int) smp_boot_data.cpu_phys_id[available_cpus])
- printk(" (BSP)");
#endif
++available_cpus;
}
- printk("\n");
-
total_cpus++;
return 0;
}
if (BAD_MADT_ENTRY(lacpi_nmi, end))
return -EINVAL;
- acpi_table_print_madt_entry(header);
-
/* TBD: Support lapic_nmi entries */
return 0;
}
if (BAD_MADT_ENTRY(iosapic, end))
return -EINVAL;
- acpi_table_print_madt_entry(header);
-
iosapic_init(iosapic->address, iosapic->global_irq_base);
return 0;
if (BAD_MADT_ENTRY(plintsrc, end))
return -EINVAL;
- acpi_table_print_madt_entry(header);
-
/*
* Get vector assignment for this interrupt, set attributes,
* and program the IOSAPIC routing table.
if (BAD_MADT_ENTRY(p, end))
return -EINVAL;
- acpi_table_print_madt_entry(header);
-
iosapic_override_isa_irq(p->bus_irq, p->global_irq,
(p->flags.polarity == 1) ? IOSAPIC_POL_HIGH : IOSAPIC_POL_LOW,
(p->flags.trigger == 1) ? IOSAPIC_EDGE : IOSAPIC_LEVEL);
if (BAD_MADT_ENTRY(nmi_src, end))
return -EINVAL;
- acpi_table_print_madt_entry(header);
-
/* TBD: Support nimsrc entries */
return 0;
}
-/* Hook from generic ACPI tables.c */
-void __init acpi_madt_oem_check(char *oem_id, char *oem_table_id)
+static void __init
+acpi_madt_oem_check (char *oem_id, char *oem_table_id)
{
if (!strncmp(oem_id, "IBM", 3) &&
- (!strncmp(oem_table_id, "SERMOW", 6))){
+ (!strncmp(oem_table_id, "SERMOW", 6))) {
- /* Unfortunatly ITC_DRIFT is not yet part of the
+ /*
+ * Unfortunately ITC_DRIFT is not yet part of the
* official SAL spec, so the ITC_DRIFT bit is not
* set by the BIOS on this hardware.
*/
sal_platform_features |= IA64_SAL_PLATFORM_FEATURE_ITC_DRIFT;
- /*Start cyclone clock*/
- cyclone_setup(0);
+ cyclone_setup();
}
}
#endif /* CONFIG_ACPI_NUMA */
unsigned int
-acpi_register_gsi (u32 gsi, int polarity, int trigger)
+acpi_register_gsi (u32 gsi, int edge_level, int active_high_low)
{
- return acpi_register_irq(gsi, polarity, trigger);
+ if (has_8259 && gsi < 16)
+ return isa_irq_to_vector(gsi);
+
+ return iosapic_register_intr(gsi,
+ (active_high_low == ACPI_ACTIVE_HIGH) ? IOSAPIC_POL_HIGH : IOSAPIC_POL_LOW,
+ (edge_level == ACPI_EDGE_SENSITIVE) ? IOSAPIC_EDGE : IOSAPIC_LEVEL);
}
EXPORT_SYMBOL(acpi_register_gsi);
if (fadt->iapc_boot_arch & BAF_LEGACY_DEVICES)
acpi_legacy_devices = 1;
- acpi_register_gsi(fadt->sci_int, ACPI_ACTIVE_LOW, ACPI_LEVEL_SENSITIVE);
+ acpi_register_gsi(fadt->sci_int, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW);
return 0;
}
return 0;
}
-int
-acpi_register_irq (u32 gsi, u32 polarity, u32 trigger)
-{
- if (has_8259 && gsi < 16)
- return isa_irq_to_vector(gsi);
-
- return iosapic_register_intr(gsi,
- (polarity == ACPI_ACTIVE_HIGH) ? IOSAPIC_POL_HIGH : IOSAPIC_POL_LOW,
- (trigger == ACPI_EDGE_SENSITIVE) ? IOSAPIC_EDGE : IOSAPIC_LEVEL);
-}
-EXPORT_SYMBOL(acpi_register_irq);
-
#endif /* CONFIG_ACPI_BOOT */