[PATCH] Fix PXA-27x/3xx interrupts when CONFIG_PXA_HAVE_ISA_IRQS=y

Marc Zyngier maz at misterjones.org
Thu Nov 5 02:10:10 EST 2009


On Thu, 5 Nov 2009 11:14:33 +0800
Eric Miao <eric.y.miao at gmail.com> wrote:

Eric,

> Could you please check without that #ifdef .. #endif it still works
> fine since my assmption is PXA_IRQ() has taken that into account.

Indeed, PXA_IRQ() knows about PXA_HAVE_ISA_IRQ, and we can
unconditionally have this fix.

Please find below the updated patch.

	M.

From 50390cb82a10921b91a25f5908fdcacdf624017c Mon Sep 17 00:00:00 2001
From: Marc Zyngier <maz at taxman.wild-wind.fr.eu.org>
Date: Tue, 3 Nov 2009 20:35:19 +0100
Subject: [PATCH] Fix pxa27x/3xx interrupts when CONFIG_PXA_HAVE_ISA_IRQS=y

Commit d2c37068429b29d6549cf3486fc84b836689e122 ([ARM] pxa:
initialize default interrupt priority and use ICHP for IRQ handling)
broke ISA interrupt support on pxa27x/3xx.

In such a case, PXA_IRQ(0) != 0, and the IRQ number computed from
ICHP must be offset by PXA_IRQ(0).

Tested on an Arcom Zeus (pxa270), with both CONFIG_PXA_HAVE_ISA_IRQS
enabled and disabled.

Signed-off-by: Marc Zyngier <maz at misterjones.org>
---
 arch/arm/mach-pxa/include/mach/entry-macro.S |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/arch/arm/mach-pxa/include/mach/entry-macro.S b/arch/arm/mach-pxa/include/mach/entry-macro.S
index 2418806..a73bc86 100644
--- a/arch/arm/mach-pxa/include/mach/entry-macro.S
+++ b/arch/arm/mach-pxa/include/mach/entry-macro.S
@@ -46,5 +46,6 @@
 		beq	1001f
 		bic	\irqstat, \irqstat, #0x80000000
 		mov	\irqnr, \irqstat, lsr #16
+		add	\irqnr, \irqnr, #(PXA_IRQ(0))
 1001:
 		.endm
-- 
1.6.0.4


-- 
I'm the slime oozin' out from your TV set...



More information about the linux-arm-kernel mailing list