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 <jpk@sgi.com> Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
parent
a7ec3f5289
commit
3948ec9406
@ -590,6 +590,9 @@ void __init acpi_numa_arch_fixup(void)
|
|||||||
*/
|
*/
|
||||||
int acpi_register_gsi(u32 gsi, int triggering, int polarity)
|
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)
|
if (has_8259 && gsi < 16)
|
||||||
return isa_irq_to_vector(gsi);
|
return isa_irq_to_vector(gsi);
|
||||||
|
|
||||||
|
@ -223,6 +223,9 @@ sn_io_acpi_init(void)
|
|||||||
u64 result;
|
u64 result;
|
||||||
s64 status;
|
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);
|
acpi_bus_register_driver(&acpi_sn_hubdev_driver);
|
||||||
status = sal_ioif_init(&result);
|
status = sal_ioif_init(&result);
|
||||||
if (status || result)
|
if (status || result)
|
||||||
|
@ -561,6 +561,9 @@ static int __init acpi_bus_init_irq(void)
|
|||||||
case ACPI_IRQ_MODEL_IOSAPIC:
|
case ACPI_IRQ_MODEL_IOSAPIC:
|
||||||
message = "IOSAPIC";
|
message = "IOSAPIC";
|
||||||
break;
|
break;
|
||||||
|
case ACPI_IRQ_MODEL_PLATFORM:
|
||||||
|
message = "platform specific model";
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
printk(KERN_WARNING PREFIX "Unknown interrupt routing model\n");
|
printk(KERN_WARNING PREFIX "Unknown interrupt routing model\n");
|
||||||
return -ENODEV;
|
return -ENODEV;
|
||||||
|
@ -47,6 +47,7 @@ enum acpi_irq_model_id {
|
|||||||
ACPI_IRQ_MODEL_PIC = 0,
|
ACPI_IRQ_MODEL_PIC = 0,
|
||||||
ACPI_IRQ_MODEL_IOAPIC,
|
ACPI_IRQ_MODEL_IOAPIC,
|
||||||
ACPI_IRQ_MODEL_IOSAPIC,
|
ACPI_IRQ_MODEL_IOSAPIC,
|
||||||
|
ACPI_IRQ_MODEL_PLATFORM,
|
||||||
ACPI_IRQ_MODEL_COUNT
|
ACPI_IRQ_MODEL_COUNT
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user