Re: m68k: Convert to genirq (WIP)

From: Finn Thain
Date: Wed Aug 10 2011 - 07:20:26 EST



On Wed, 10 Aug 2011, Geert Uytterhoeven wrote:
>
> While looking into optimizing interrupts using chain handlers (which
> cannot be shared), I noticed several of these cascades are hung on the
> same interrupt. Hence we cannot use the optimization of chain handlers
> for them.
>
> Knowing which are mutually exclusive helps a lot, but my Mac knowledge
> is very limited.
>
> I derived from the code this list of cascade handlers and the interrupts
> they use:
>
> baboon_irq
> IRQ_NUBUS_C
>
> oss_irq
> OSS_IRQLEV_SCSI = IRQ_AUTO_2 conflict: via2_irq
> OSS_IRQLEV_SOUND = IRQ_AUTO_5 conflict: psc_irq

PSC and OSS are mutually exclusive.

VIA2 and OSS are also mutually exlusive.

>
> oss_nubus_irq
> OSS_IRQLEV_NUBUS = IRQ_AUTO_3 conflict: psc_irq
>
> psc_irq
> IRQ_AUTO_3 conflict: oss_nubus_irq
> IRQ_AUTO_4
> IRQ_AUTO_5 conflict: oss_irq
> IRQ_AUTO_6 conflict: via1_irq
>
> via1_irq
> OSS_IRQLEV_VIA1 = IRQ_AUTO_6 (on oss) conflict: psc_irq
>
> IRQ_AUTO_1 conflict: iop_ism_irq

iop_ism_irq is only used with OSS.

> IRQ_AUTO_6 (if via_alt_mapping) conflict: psc_irq

via_alt_mapping is not used with PSC.

>
> via2_irq
> IRQ_AUTO_2 conflict: oss_irq
>
> via_nubus_irq
> IRQ_MAC_NUBUS = IRQ_VIA2_1
>
> These are other interrupts using in the Mac core code, which may use the same
> interrupts as some of the cascades above:
>
> 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.

> IRQ_VIA2_0 (on !oss)
>
> mac_nmi_handler
> IRQ_AUTO_7
>
> timer handler
> IRQ_MAC_TIMER_1 = IRQ_VIA1_6
>
> So baboon and PSC are mutually exclusive? But they don't conflict w.r.t. to
> interrupt lines anyway, so they're not an issue.
>
> From the code, OSS and VIA are also mutually exclusive (except for via1_irq)?
>
> But PSC can coexist with OSS? That's where most of the conflicts are.

Hope this helps...

Finn

>
> Gr{oetje,eeting}s,
>
>                         Geert
>
> --
> Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx
>
> In personal conversations with technical people, I call myself a hacker. But
> when I'm talking to journalists I just say "programmer" or something like that.
>                                 -- Linus Torvalds
>