summaryrefslogtreecommitdiff
path: root/target/linux/coldfire/patches/050-mcfv4e_irq_magic_bit.patch
blob: 61d746b701cfb9d9f334046a65618ce9b00b74c8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
From 3487b77acbb12f4174f46237f942918651b23aa7 Mon Sep 17 00:00:00 2001
From: Kurt Mahan <kmahan@freescale.com>
Date: Tue, 15 Apr 2008 17:14:55 -0600
Subject: [PATCH] Fix setting low 31 interrupts to deal with magic bit 0
 of the IMRL register.

LTIBName: mcfv4e-irq-magic-bit
Signed-off-by: Kurt Mahan <kmahan@freescale.com>
---
 arch/m68k/coldfire/ints.c |    9 ++++++---
 1 files changed, 6 insertions(+), 3 deletions(-)

--- a/arch/m68k/coldfire/ints.c
+++ b/arch/m68k/coldfire/ints.c
@@ -420,10 +420,13 @@ void m547x_8x_irq_enable(unsigned int ir
 	}
 #endif
 
-	if (irq < 32)
-		MCF_IMRL &= ~(1 << irq);
-	else
+	if (irq < 32) {
+		/* *grumble* don't set low bit of IMRL */
+		MCF_IMRL &= (~(1 << irq) & 0xfffffffe);
+	}
+	else {
 		MCF_IMRH &= ~(1 << (irq - 32));
+	}
 }
 
 void m547x_8x_irq_disable(unsigned int irq)