m68knommu: mask off all interrupts in ColdFire intc-simr controller
authorGreg Ungerer <gerg@uclinux.org>
Wed, 6 May 2009 04:28:25 +0000 (14:28 +1000)
committerGreg Ungerer <gerg@uclinux.org>
Tue, 15 Sep 2009 23:43:48 +0000 (09:43 +1000)
The ColdFire intc-simr interrupt controller should mask off all
interrupt sources at init time. Doing it here instead of separately
in each platform setup.

Signed-off-by: Greg Ungerer <gerg@uclinux.org>
arch/m68k/include/asm/m532xsim.h
arch/m68knommu/platform/coldfire/intc-simr.c

index 41c57e0f445ab8cf3d56f6524817e411eb2ddbcf..021a0e15527036dd9e658f82112c5ba0ca9c103f 100644 (file)
@@ -56,8 +56,6 @@
 #define        MCFSIM_DMA3ICR          MCFSIM_ICR9     /* DMA 3 ICR */
 
 
-#define        MCFSIM_IMR_MASKALL      0xFFFFFFFF      /* All SIM intr sources */
-
 #define        MCFINTC0_SIMR           0xFC04801C
 #define        MCFINTC0_CIMR           0xFC04801D
 #define        MCFINTC0_ICR0           0xFC048040
 #define MCFSIM_ICR_TIMER2      (0xFC048040+33)
 
 
-/*
- *     Macro to set IMR register. It is 32 bits on the 5307.
- */
-#define        mcf_getimr()            \
-       *((volatile unsigned long *) (MCF_MBAR + MCFSIM_IMR))
-
-#define        mcf_setimr(imr)         \
-       *((volatile unsigned long *) (MCF_MBAR + MCFSIM_IMR)) = (imr);
-
-#define        mcf_getipr()            \
-       *((volatile unsigned long *) (MCF_MBAR + MCFSIM_IPR))
-
-#define        mcf_getiprl()           \
-       *((volatile unsigned long *) (MCF_MBAR + MCFSIM_IPRL))
-
-#define        mcf_getiprh()           \
-       *((volatile unsigned long *) (MCF_MBAR + MCFSIM_IPRH))
-
-
-#define mcf_enable_irq0(irq)           \
-       *((volatile unsigned char *) (MCFINTC0_CIMR)) = (irq);
-
-#define mcf_enable_irq1(irq)           \
-       *((volatile unsigned char *) (MCFINTC1_CIMR)) = (irq);
-
-#define mcf_disable_irq0(irq)          \
-       *((volatile unsigned char *) (MCFINTC0_SIMR)) = (irq);
-
-#define mcf_disable_irq1(irq)          \
-       *((volatile unsigned char *) (MCFINTC1_SIMR)) = (irq);
-
 /*
  *     Define the Cache register flags.
  */
index 86fc2047d7acd99409d6ae337ef0a127bbf90850..1b01e79c2f633a75540457a7d1d10f066f26002e 100644 (file)
@@ -62,6 +62,11 @@ void __init init_IRQ(void)
 
        init_vectors();
 
+       /* Mask all interrupt sources */
+       __raw_writeb(0xff, MCFINTC0_SIMR);
+       if (MCFINTC1_SIMR)
+               __raw_writeb(0xff, MCFINTC1_SIMR);
+
        for (irq = 0; (irq < NR_IRQS); irq++) {
                irq_desc[irq].status = IRQ_DISABLED;
                irq_desc[irq].action = NULL;