Hoping someone can explain to me the frigged up things I'm seeing. I'm running 2.4.18 on a PPC823. I'm working with two drivers.
1) Interrrupt_latency from Craig Hollabaugh at embeddedlinuxinterfacing.com. When the driver is installed, catting /proc/interrupts shows that the interrupts is installed at IRQ*2; ie if the driver installed at irq2 it is reported to be at irq4. If you dump the IRQ mask, everything is cool. Craig notes that the reporting is incorrect, but I dug in a bit and it appears that the doubled value runs throughout the kernel internals. The interruppt is serviced correctly when pin IRQ2 is driven active low.2) OCAN from Alessandro Rubini at ar.linux.it. Installing that driver at, for example, IRQ2, actually gets mapped physically to IRQ1, ie when the IRQ1 pin is active low, the handeler is invoked. When /proc/interrupts is catted, it indicates the handler is installed on IRQ2. Dumping the IRQ mask indicates that IRQ1 is been enabled.
I've dumped the vaules being passed too request8xx_IRQ in both drivers, no clues there. as mentioned I dug around a bit in the kernel and nothing jumps out.
What in the heck is going on here!!! My system is working but I'd sure like to know why!!
regards, John Miller