This commit was manufactured by cvs2svn to create tag
[linux-2.6.git] / arch / ia64 / kernel / acpi.c
index cf61f3e..2826444 100644 (file)
@@ -171,6 +171,8 @@ acpi_parse_lapic_addr_ovr (
        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);
@@ -189,13 +191,25 @@ acpi_parse_lsapic (acpi_table_entry_header *header, const unsigned long end)
        if (BAD_MADT_ENTRY(lsapic, end))
                return -EINVAL;
 
-       if (lsapic->flags.enabled) {
+       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");
 #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;
 }
@@ -211,6 +225,8 @@ acpi_parse_lapic_nmi (acpi_table_entry_header *header, const unsigned long end)
        if (BAD_MADT_ENTRY(lacpi_nmi, end))
                return -EINVAL;
 
+       acpi_table_print_madt_entry(header);
+
        /* TBD: Support lapic_nmi entries */
        return 0;
 }
@@ -226,6 +242,8 @@ acpi_parse_iosapic (acpi_table_entry_header *header, const unsigned long end)
        if (BAD_MADT_ENTRY(iosapic, end))
                return -EINVAL;
 
+       acpi_table_print_madt_entry(header);
+
        iosapic_init(iosapic->address, iosapic->global_irq_base);
 
        return 0;
@@ -244,6 +262,8 @@ acpi_parse_plat_int_src (
        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.
@@ -272,6 +292,8 @@ acpi_parse_int_src_ovr (
        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);
@@ -289,24 +311,26 @@ acpi_parse_nmi_src (acpi_table_entry_header *header, const unsigned long end)
        if (BAD_MADT_ENTRY(nmi_src, end))
                return -EINVAL;
 
+       acpi_table_print_madt_entry(header);
+
        /* TBD: Support nimsrc entries */
        return 0;
 }
 
-static void __init
-acpi_madt_oem_check (char *oem_id, char *oem_table_id)
+/* Hook from generic ACPI tables.c */
+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))){
 
-               /*
-                * Unfortunately ITC_DRIFT is not yet part of the
+               /* Unfortunatly 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;
 
-               cyclone_setup();
+               /*Start cyclone clock*/
+               cyclone_setup(0);
        }
 }