Looking at int-handler.S the code testing the CAUSE register($12) against
the STATUS register($13). It only processes if both bits in the
two registers are set. Somehow the clock is being set in the STATUS
register and I am getting hardware interrupts - which is a good sign.
After having looked for about an hour for where the STATUS register is
set, I seem to be unable to find where that happens. In the case
of the dz driver, I believe that the kernel is generating interrupts, but
because the STATUS register is not set, the kernel is ignoring these
interrupts.
I would think the STATUS register should be set in request_irq - but
it isn't.
Where is the code that sets the STATUS bit for the clock? and in general
for irqs?
Am I totally missing the mark here?
-Tom
-----------------------------------------------------------------------
Given enough eyeballs all bugs seem shallow.
|