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
--