There's no need to have DMA initialised at the same time as
interrupts.  Move it to a core_initcall().
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
        return ret;
 }
 
-void __init init_dma(void)
+static int __init init_dma(void)
 {
        arch_dma_init(dma_chan);
+       return 0;
 }
 
+core_initcall(init_dma);
+
 #else
 
 int request_dma(dmach_t channel, const char *device_id)
 GLOBAL_ALIAS(__set_dma_addr, get_dma_residue);
 GLOBAL_ALIAS(set_dma_sg, get_dma_residue);
 GLOBAL_ALIAS(set_dma_speed, get_dma_residue);
-GLOBAL_ALIAS(init_dma, get_dma_residue);
 
 #endif
 
 
 void __init init_IRQ(void)
 {
        struct irqdesc *desc;
-       extern void init_dma(void);
        int irq;
 
 #ifdef CONFIG_SMP
        }
 
        init_arch_irq();
-       init_dma();
 }
 
 static int __init noirqdebug_setup(char *str)