Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3948ec94 authored by John Keller's avatar John Keller Committed by Len Brown
Browse files

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: default avatarJohn Keller <jpk@sgi.com>
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent a7ec3f52
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -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);

+3 −0
Original line number Diff line number Diff line
@@ -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)
+3 −0
Original line number Diff line number Diff line
@@ -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;
+1 −0
Original line number Diff line number Diff line
@@ -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
};