diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c
index 518dab0b107f8c3abc3192226cd378ac0c893301..201f05e74c5a29a5e04beed77d0126eee69aab1f 100644
--- a/arch/ia64/kernel/acpi.c
+++ b/arch/ia64/kernel/acpi.c
@@ -727,7 +727,9 @@ acpi_register_irq (u32 gsi, u32 polarity, u32 trigger)
 		return 0;
 
 	/* Turn it on */
-	vector = iosapic_register_intr (gsi, polarity, trigger);
+	vector = iosapic_register_intr (gsi,
+			(polarity == ACPI_ACTIVE_HIGH) ? IOSAPIC_POL_HIGH : IOSAPIC_POL_LOW,
+			(trigger == ACPI_EDGE_SENSITIVE) ? IOSAPIC_EDGE : IOSAPIC_LEVEL);
 	return vector;
 }