aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/include
diff options
context:
space:
mode:
authorRussell King <rmk@dyn-67.arm.linux.org.uk>2008-12-08 11:33:30 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2008-12-11 09:32:43 -0500
commit2f757f2ab7411cf0e2779012d8cda0cbf2f80d26 (patch)
tree880e0c661948132d54ce238eb45cba9bb71314d4 /arch/arm/include
parent3afb6e9c635f735c751148beddc195daec0e35ec (diff)
[ARM] dma: rejig DMA initialization
Rather than having the central DMA multiplexer call the architecture specific DMA initialization function, have each architecture DMA initialization function use core_initcall(), and register each DMA channel separately with the multiplexer. This removes the array of dma structures in the central multiplexer, replacing it with an array of pointers instead; this is more flexible since it allows the drivers to wrap the DMA structure (eventually allowing us to transition non-ISA DMA drivers away.) Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/include')
-rw-r--r--arch/arm/include/asm/mach/dma.h12
1 files changed, 7 insertions, 5 deletions
diff --git a/arch/arm/include/asm/mach/dma.h b/arch/arm/include/asm/mach/dma.h
index 281ae7e40a90..38a3693f1258 100644
--- a/arch/arm/include/asm/mach/dma.h
+++ b/arch/arm/include/asm/mach/dma.h
@@ -48,10 +48,12 @@ struct dma_struct {
48 struct dma_ops *d_ops; 48 struct dma_ops *d_ops;
49}; 49};
50 50
51/* Prototype: void arch_dma_init(dma) 51/*
52 * Purpose : Initialise architecture specific DMA 52 * isa_dma_add - add an ISA-style DMA channel
53 * Params : dma - pointer to array of DMA structures
54 */ 53 */
55extern void arch_dma_init(dma_t *dma); 54extern int isa_dma_add(unsigned int, dma_t *dma);
56 55
57extern void isa_init_dma(dma_t *dma); 56/*
57 * Add the ISA DMA controller. Always takes channels 0-7.
58 */
59extern void isa_init_dma(void);