On Fri, 26 Aug 2011, Geert Uytterhoeven wrote:

> On Wed, Aug 10, 2011 at 12:53, Finn Thain <[email protected]> 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
> 

Reply via email to