IRQ_NOAUTOEN in __set_irq_handler

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Esben Haabendal
Date: Tuesday, May 6, 2008 - 5:43 am

Would it be possible to have support for IRQ_NOAUTOEN in
__set_irq_handler and thus set_irq_chained_handler?

Something like:

@@ -582,14 +582,19 @@ __set_irq_handler(unsigned int irq,
irq_flow_handler_t handle, int is_chained,
 	}
 	desc->handle_irq = handle;
 	desc->name = name;

 	if (handle != handle_bad_irq && is_chained) {
-		desc->status &= ~IRQ_DISABLED;
 		desc->status |= IRQ_NOREQUEST | IRQ_NOPROBE;
-		desc->depth = 0;
-		desc->chip->unmask(irq);
+		if (!(desc->status & IRQ_NOAUTOEN)) {
+			desc->depth = 0;
+			desc->status &= ~IRQ_DISABLED;
+			desc->chip->unmask(irq);
+		} else {
+			/* Undo nested disables: */
+			desc->depth = 1;
+		}
 	}
 	spin_unlock_irqrestore(&desc->lock, flags);
 }

 void
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
IRQ_NOAUTOEN in __set_irq_handler, Esben Haabendal, (Tue May 6, 5:43 am)