Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3948ec9406f9a60a43d63f23f6f5284db6529b9c
Commit:     3948ec9406f9a60a43d63f23f6f5284db6529b9c
Parent:     a7ec3f5289681e9d63b65db5f56857f998812b4b
Author:     John Keller <[EMAIL PROTECTED]>
AuthorDate: Fri Dec 22 11:50:04 2006 -0600
Committer:  Len Brown <[EMAIL PROTECTED]>
CommitDate: Thu Jan 4 12:18:19 2007 -0500

    ACPI: Altix: ACPI _PRT support
    
    Provide ACPI _PRT support for SN Altix systems.
    
    The SN Altix platform does not conform to the
    IOSAPIC IRQ routing model, so a new acpi_irq_model
    (ACPI_IRQ_MODEL_PLATFORM) has been defined. The SN
    platform specific code sets acpi_irq_model to
    this new value, and keys off of it in acpi_register_gsi()
    to avoid the iosapic code path.
    
    Signed-off-by: John Keller <[EMAIL PROTECTED]>
    Signed-off-by: Len Brown <[EMAIL PROTECTED]>
---
 arch/ia64/kernel/acpi.c            |    3 +++
 arch/ia64/sn/kernel/io_acpi_init.c |    3 +++
 drivers/acpi/bus.c                 |    3 +++
 include/linux/acpi.h               |    1 +
 4 files changed, 10 insertions(+), 0 deletions(-)

diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c
index 73ef4a8..ef2fe47 100644
--- a/arch/ia64/kernel/acpi.c
+++ b/arch/ia64/kernel/acpi.c
@@ -590,6 +590,9 @@ void __init acpi_numa_arch_fixup(void)
  */
 int acpi_register_gsi(u32 gsi, int triggering, int polarity)
 {
+       if (acpi_irq_model == ACPI_IRQ_MODEL_PLATFORM)
+               return gsi;
+
        if (has_8259 && gsi < 16)
                return isa_irq_to_vector(gsi);
 
diff --git a/arch/ia64/sn/kernel/io_acpi_init.c 
b/arch/ia64/sn/kernel/io_acpi_init.c
index 99d7f27..cb96b4e 100644
--- a/arch/ia64/sn/kernel/io_acpi_init.c
+++ b/arch/ia64/sn/kernel/io_acpi_init.c
@@ -223,6 +223,9 @@ sn_io_acpi_init(void)
        u64 result;
        s64 status;
 
+       /* SN Altix does not follow the IOSAPIC IRQ routing model */
+       acpi_irq_model = ACPI_IRQ_MODEL_PLATFORM;
+
        acpi_bus_register_driver(&acpi_sn_hubdev_driver);
        status = sal_ioif_init(&result);
        if (status || result)
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
index 279c4ba..766332e 100644
--- a/drivers/acpi/bus.c
+++ b/drivers/acpi/bus.c
@@ -561,6 +561,9 @@ static int __init acpi_bus_init_irq(void)
        case ACPI_IRQ_MODEL_IOSAPIC:
                message = "IOSAPIC";
                break;
+       case ACPI_IRQ_MODEL_PLATFORM:
+               message = "platform specific model";
+               break;
        default:
                printk(KERN_WARNING PREFIX "Unknown interrupt routing model\n");
                return -ENODEV;
diff --git a/include/linux/acpi.h b/include/linux/acpi.h
index 2b0c955..91f1f23 100644
--- a/include/linux/acpi.h
+++ b/include/linux/acpi.h
@@ -47,6 +47,7 @@ enum acpi_irq_model_id {
        ACPI_IRQ_MODEL_PIC = 0,
        ACPI_IRQ_MODEL_IOAPIC,
        ACPI_IRQ_MODEL_IOSAPIC,
+       ACPI_IRQ_MODEL_PLATFORM,
        ACPI_IRQ_MODEL_COUNT
 };
 
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to