Re: [RFC] 85XX: Allow 8259 cascade to share an MPIC interrupt line.
From: Sergei Shtylyov <hidden>
Date: 2007-06-07 20:02:31
Randy Vinson wrote:
quoted
quoted
After processing a possible 8259 interrupt, the 8259 cascade handler calls handle_fasteoi_irq to perform the actions noted above. However, with the 8259 cascade handler hooked to the interrupt, the threaded IRQ handler doesn't recognize it as one of the 4 standard generic IRQ types and calls the threaded version of do_irq instead of the threaded fasteoi handler.
quoted
Ah, that's it!
quoted
quoted
Once the threaded do_irq handler completes the action list, it uses the .end routine to restart the interrupt flow. Pointing .end to the standard MPIC unmask routine allows it to balance the interrupt mask operation performed by handle_fasteoi_irq before it scheduled the IRQ thread.
quoted
Well, but when MPIC's eoi() method is called then? :-O
It's called from handle_fasteoi_irq as I described in the "basics" ;)
Indeed, I somehow thought eoi() is out of the threaded exit path of
handle_fasteoi_irq() -- but it hasn't always been that way! So, it's probably
a painful memories of my past quarrel with Ingo over fasteoi breakage that
played a trick with me here. ;-)
Randy V.
WBR, Sergei