aboutsummaryrefslogtreecommitdiff
path: root/arch/mips/philips/pnx8550/common/int.c
diff options
context:
space:
mode:
authorThiemo Seufer <ths@networkno.de>2007-03-19 00:13:37 +0000
committerRalf Baechle <ralf@linux-mips.org>2007-03-19 20:22:43 +0000
commit119537c092638bf8a0672415024639353c773bb1 (patch)
treeaf3fc85f2d5a4bf93fd1cd82b228054ac6b5fe42 /arch/mips/philips/pnx8550/common/int.c
parent72ede9b18967e7a8a62a88f164f003193f6d891f (diff)
[MIPS] Misc fixes for plat_irq_dispatch functions
o adds missing ST0_IM masks, which caused the logging of valid interrupts as spurious o stops pnx8550 to log every interrupt as spurious o adds cause register masks for ip22/ip32, which caused handling of masked interrupts o removes some superfluous parentheses in the SNI interrupt code Signed-Off-By: Thiemo Seufer <ths@networkno.de> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/philips/pnx8550/common/int.c')
-rw-r--r--arch/mips/philips/pnx8550/common/int.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/arch/mips/philips/pnx8550/common/int.c b/arch/mips/philips/pnx8550/common/int.c
index b1c4805a0b9..aad03429a5e 100644
--- a/arch/mips/philips/pnx8550/common/int.c
+++ b/arch/mips/philips/pnx8550/common/int.c
@@ -83,16 +83,15 @@ static void timer_irqdispatch(int irq)
asmlinkage void plat_irq_dispatch(void)
{
- unsigned int pending = read_c0_status() & read_c0_cause();
+ unsigned int pending = read_c0_status() & read_c0_cause() & ST0_IM;
if (pending & STATUSF_IP2)
hw0_irqdispatch(2);
else if (pending & STATUSF_IP7) {
if (read_c0_config7() & 0x01c0)
timer_irqdispatch(7);
- }
-
- spurious_interrupt();
+ } else
+ spurious_interrupt();
}
static inline void modify_cp0_intmask(unsigned clr_mask, unsigned set_mask)