aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRussell King <rmk@dyn-67.arm.linux.org.uk>2006-01-04 15:17:08 +0000
committerRussell King <rmk+kernel@arm.linux.org.uk>2006-01-04 15:17:08 +0000
commit6842b9299272a9471a7e94e046b953f6ffe3db9d (patch)
treec24433e5f574b7fa70b9f01cbea01544631c6517
parent7cdad482974792419cfe4b0affca689170116f49 (diff)
[ARM] Use core_initcall() to initialise ARM DMA
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>
-rw-r--r--arch/arm/kernel/dma.c6
-rw-r--r--arch/arm/kernel/irq.c2
2 files changed, 4 insertions, 4 deletions
diff --git a/arch/arm/kernel/dma.c b/arch/arm/kernel/dma.c
index 913fd947528..3b325ef55a2 100644
--- a/arch/arm/kernel/dma.c
+++ b/arch/arm/kernel/dma.c
@@ -248,11 +248,14 @@ int get_dma_residue(dmach_t channel)
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)
@@ -276,7 +279,6 @@ GLOBAL_ALIAS(set_dma_count, get_dma_residue);
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
diff --git a/arch/arm/kernel/irq.c b/arch/arm/kernel/irq.c
index d7099dbbb87..869c466e625 100644
--- a/arch/arm/kernel/irq.c
+++ b/arch/arm/kernel/irq.c
@@ -1027,7 +1027,6 @@ void __init init_irq_proc(void)
void __init init_IRQ(void)
{
struct irqdesc *desc;
- extern void init_dma(void);
int irq;
#ifdef CONFIG_SMP
@@ -1041,7 +1040,6 @@ void __init init_IRQ(void)
}
init_arch_irq();
- init_dma();
}
static int __init noirqdebug_setup(char *str)