Blackfin arch: clear EMAC_SYSTAT during IRQ init rather than early head.S as we dont...
authorMike Frysinger <vapier.adi@gmail.com>
Thu, 14 Aug 2008 07:05:01 +0000 (15:05 +0800)
committerBryan Wu <cooloney@kernel.org>
Thu, 14 Aug 2008 07:05:01 +0000 (15:05 +0800)
Signed-off-by: Mike Frysinger <vapier.adi@gmail.com>
Signed-off-by: Bryan Wu <cooloney@kernel.org>
arch/blackfin/mach-bf527/head.S
arch/blackfin/mach-bf537/head.S
arch/blackfin/mach-common/ints-priority.c

index 2cc46f8fa9a787a054e9e3d3a7bbc672deb6c5d3..fa4b18eddf635c861aa684ff34dbf9e3e112a595 100644 (file)
 __INIT
 
 ENTRY(_mach_early_start)
-#if defined(CONFIG_BF527)
-       p0.h = hi(EMAC_SYSTAT);
-       p0.l = lo(EMAC_SYSTAT);
-       R0.h = 0xFFFF; /* Clear EMAC Interrupt Status bits */
-       R0.l = 0xFFFF;
-       [P0] = R0;
-       SSYNC;
-#endif
-
        /* Initialise UART - when booting from u-boot, the UART is not disabled
         * so if we dont initalize here, our serial console gets hosed */
        p0.h = hi(UART1_LCR);
index c02c8ce2d96fbe1713e210b16bc056c9cc5877f8..ba81b779511d28fd8ebd7e272e3cfc65d8ece8de 100644 (file)
@@ -54,15 +54,6 @@ ENTRY(_mach_early_start)
        W[P0] = R0.L;
        SSYNC;
 
-#if !defined(CONFIG_BF534)
-       p0.h = hi(EMAC_SYSTAT);
-       p0.l = lo(EMAC_SYSTAT);
-       R0.h = 0xFFFF; /* Clear EMAC Interrupt Status bits */
-       R0.l = 0xFFFF;
-       [P0] = R0;
-       SSYNC;
-#endif
-
        /* Initialise UART - when booting from u-boot, the UART is not disabled
         * so if we dont initalize here, our serial console gets hosed */
        p0.h = hi(BFIN_UART_LCR);
index 7f9df4ee7346bfcb1e55e3161be42a608a92e01c..62f8883a5c273e21ceefa5f867fb5876330d8b57 100644 (file)
@@ -983,6 +983,11 @@ int __init init_arch_irq(void)
 
        local_irq_disable();
 
+#if defined(CONFIG_BF527) || defined(CONFIG_BF536) || defined(CONFIG_BF537)
+       /* Clear EMAC Interrupt Status bits so we can demux it later */
+       bfin_write_EMAC_SYSTAT(-1);
+#endif
+
 #ifdef CONFIG_BF54x
 # ifdef CONFIG_PINTx_REASSIGN
        pint[0]->assign = CONFIG_PINT0_ASSIGN;