On Fri, 26 Aug 2011, Geert Uytterhoeven wrote:
On Wed, Aug 10, 2011 at 12:53, Finn Thain <fthain@xxxxxxxxxxxxxxxxxxx> wrote:
via1_irq
OSS_IRQLEV_VIA1 = IRQ_AUTO_6 (on oss) conflict: psc_irq
IRQ_AUTO_1 conflict: iop_ism_irq
iop_ism_irq
OSS_IRQLEV_IOPISM = 1 = IRQ_AUTO_1 (on oss) conflict: via1_irq
via1_irq is remapped to IRQ_AUTO_6 on OSS.
According to via_register_interrupts(), it requests both:
if (via_alt_mapping) {
if (request_irq(IRQ_AUTO_1, via1_irq, 0, "software",
(void *)via1))
pr_err("Couldn't register %s interrupt\n", "software");
if (request_irq(IRQ_AUTO_6, via1_irq, 0, "via1", (void *)via1))
pr_err("Couldn't register %s interrupt\n", "via1");
} else {
if (request_irq(IRQ_AUTO_1, via1_irq, 0, "via1", (void *)via1))
pr_err("Couldn't register %s interrupt\n", "via1");
}
Hence IRQ_AUTO_1 must be shared and we cannot use an optimized chain
handler for via1_irq()
I'm pretty sure that the "software" request_irq can be removed. It has
come up before --
http://marc.info/?l=linux-mac68k&m=110973724208746&w=2
Maybe Brad can shed some light on this (?)
I've just cloned and built your m68k-genirq branch. I will run some tests.
nor iop_ism_irq().
via_register_interrupts() is not called on OSS.
Finn
This is the only remaining conflict I see.
Gr{oetje,eeting}s,
Geert