diff options
Diffstat (limited to 'target/linux/coldfire/patches/050-mcfv4e_irq_magic_bit.patch')
-rw-r--r-- | target/linux/coldfire/patches/050-mcfv4e_irq_magic_bit.patch | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/target/linux/coldfire/patches/050-mcfv4e_irq_magic_bit.patch b/target/linux/coldfire/patches/050-mcfv4e_irq_magic_bit.patch new file mode 100644 index 0000000000..61d746b701 --- /dev/null +++ b/target/linux/coldfire/patches/050-mcfv4e_irq_magic_bit.patch @@ -0,0 +1,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) |