From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate.crashing.org (gate.crashing.org [63.228.1.57]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id 661AF1007D7 for ; Thu, 8 Dec 2011 15:20:13 +1100 (EST) Message-ID: <1323318004.12793.21.camel@pasglop> Subject: Re: [PATCH 01/16 v3] pmac_zilog: fix unexpected irq From: Benjamin Herrenschmidt To: Finn Thain Date: Thu, 08 Dec 2011 15:20:04 +1100 In-Reply-To: References: <20111023141108.856998818@telegraphics.com.au> <20111023141115.208699274@telegraphics.com.au> Content-Type: text/plain; charset="UTF-8" Mime-Version: 1.0 Cc: linuxppc-dev@lists.ozlabs.org, linux-m68k@vger.kernel.org, Geert Uytterhoeven , linux-serial@vger.kernel.org List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , 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 > Acked-by: Alan Cox > > --- 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.