Subject: Re: Interrupt sharing
To: Donald Lee <MacPPC1@caution.icompute.com>
From: Michael <macallan18@earthlink.net>
List: port-macppc
Date: 12/05/2004 19:47:46
Hello,

> This sounds really familiar.  I have seen something similar with my
> Cyclades serial card.  I am convinced that interrupts get "lost".
> I ended up "fixing it" by implementing a poll that processes the
> by occasionally calling the interrupt handler directly from an
> event loop.  Ugly, but it works.
So it is a generic problem...

Does anyone here have some good Grand Central documentation? The source isn't very helpful and google didn't find anything useful.
Basically there are 8 interrupt-related registers which are really 4x64bit - one should show which interrupts fired, one is a mask to enable/disable them, one is for clearing fired interrupts when processing them and one seems to indicate the line status. Weird: when things hang the bit for the IRQ in question in the line status register is 1. 
What exactly is the difference between the line status and the interrupt register? The current code never looks at the line status, only the interrupt one and clears what it finds there.

have fun
Michael