> > 1) You did not include messages that mask and unmask interrupts at the 
> > driver
> > side.
> 
> Interrupt masking and unmasking are handled entirely on the local processor.
> 
> When an interrupt occurs, the remote system masks the interrupt and then 
> sends a notification 
> to Linux. After Linux processes the notification, it sends a SET_IRQ_TYPE 
> message back to the 
> remote system, which then unmasks the interrupt.

Masking and unmasking an interrupt are orthogonal to the interrupt
type.

When the interrupt fires, the interrupt core calls the irq_mask()
operation on the interrupt. That should mask the interrupt. Once the
handler has finished, the interrupt core, will call irq_unmask() to
unmask the interrupt.

Edge, level, high, low, raising, falling has nothing to do with
masking. Please don't mix concepts which Linux keeps separate.

         Andrew

Reply via email to