Subject: Re: [PATCH] 2.6.18-rt7: PowerPC: fix breakage in threaded fasteoi type IRQ handlers

From: Benjamin Herrenschmidt <[email-masked]>
Date: Mon, 20 Nov 2006 07:32:56 +1100

On Sun, 2006-11-19 at 23:26 +0300, Sergei Shtylyov wrote:

>     I must not that this whole ack() vs eoi() stuff is misleading. For example,
> in 8259 driver, mask_ack() method actually sends EOI to PIC, not ACK's an IRQ 
> -- the actual ACK is implicit on x86 and is used to read the interrupt vector 
> form 8259 on PPC. So, IMO, there probably should only have been either ack() 
> or eoi() method in the first place. Though I'm not familiar with ARM from 
> which genirq stuff originated...

They are different concepts. Ack clears the event on the PIC, it's
tyically necessary for resetting the edge detection logic for edge
interrupts and has to happen before the handler is called.

On MPIC or XICS, this is implicit by reading the vector. On some more
dumb controllers, this has to be done explicitely.

EOI is a more "high level" thing that some "intelligent" PICs that
automatically raise the priority do to restore the priority to what it
was before the interrupt occured.

Ben.