[PATCH 01/16 v3] pmac_zilog: fix unexpected irq
Benjamin Herrenschmidt
benh at kernel.crashing.org
Thu Dec 8 15:20:04 EST 2011
On Wed, 2011-12-07 at 14:49 +1100, Finn Thain wrote:
> On most 68k Macs the SCC IRQ is an autovector interrupt and cannot be
> masked. This can be a problem when pmac_zilog starts up.
>
> For example, the serial debugging code in arch/m68k/kernel/head.S may be
> used beforehand. It disables the SCC interrupts at the chip but doesn't
> ack them. Then when a pmac_zilog port is used, the machine locks up with
> "unexpected interrupt".
>
> This can happen in pmz_shutdown() since the irq is freed before the
> channel interrupts are disabled.
>
> Fix this by clearing interrupt enable bits before the handler is
> uninstalled. Also move the interrupt control bit flipping into a separate
> pmz_interrupt_control() routine. Replace all instances of these operations
> with calls to this routine. Omit the zssync() calls that seem to serve no
> purpose.
>
> Signed-off-by: Finn Thain <fthain at telegraphics.com.au>
> Acked-by: Alan Cox <alan at linux.intel.com>
>
> ---
So basic operations seem to work, I've applied the patch to
powerpc-next.
However, the internal modem on my Pismo powerbook doesn't appear to
survive suspend/resume. I'll dig into that and merge a fixup patch asap.
Cheers,
Ben.
More information about the Linuxppc-dev
mailing list