diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
index eaedeb74b49dbaaee7c7e175c4771f314fc02781..f78b0846afb1c4978cc300fc78b54fbb940389b5 100644
--- a/kernel/irq/manage.c
+++ b/kernel/irq/manage.c
@@ -1737,7 +1737,14 @@ void enable_percpu_irq(unsigned int irq, unsigned int type)
 	if (!desc)
 		return;
 
+	/*
+	 * If the trigger type is not specified by the caller, then
+	 * use the default for this interrupt.
+	 */
 	type &= IRQ_TYPE_SENSE_MASK;
+	if (type == IRQ_TYPE_NONE)
+		type = irqd_get_trigger_type(&desc->irq_data);
+
 	if (type != IRQ_TYPE_NONE) {
 		int ret;