diff options
author | Ben Dooks <ben-linux@fluff.org> | 2007-02-17 09:37:14 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2007-02-17 10:00:34 -0500 |
commit | 48adbcf33b6087727a2db0b517c994a7ecfbeb0c (patch) | |
tree | 55ad8f006bfedbf5b2ec5b72bc1ede7f2c3383da /arch/arm/mach-s3c2410/dma.c | |
parent | 15e4db7b8054ac171de946b9511655446dd29b8f (diff) |
[ARM] 4220/1: S3C24XX: DMA system initialised from sysdev
This patch gets the DMA system for the S3C24XX
ready for the S3C2443, which requires 6 dma channels
at a different stride, and different base IRQ.
The DMA system is now initialised from the same
drivers which apply the DMA mappings, as well
as removing the DMA sysdev intialisation out of
the main init code (which is now being called
from a sysdev probe, so cannot add a new sysdev)
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/mach-s3c2410/dma.c')
-rw-r--r-- | arch/arm/mach-s3c2410/dma.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/arch/arm/mach-s3c2410/dma.c b/arch/arm/mach-s3c2410/dma.c index 6b3452680755..67d1ad363973 100644 --- a/arch/arm/mach-s3c2410/dma.c +++ b/arch/arm/mach-s3c2410/dma.c | |||
@@ -19,9 +19,9 @@ | |||
19 | 19 | ||
20 | #include <asm/dma.h> | 20 | #include <asm/dma.h> |
21 | #include <asm/arch/dma.h> | 21 | #include <asm/arch/dma.h> |
22 | #include <asm/plat-s3c24xx/dma.h> | ||
23 | 22 | ||
24 | #include <asm/plat-s3c24xx/cpu.h> | 23 | #include <asm/plat-s3c24xx/cpu.h> |
24 | #include <asm/plat-s3c24xx/dma.h> | ||
25 | 25 | ||
26 | #include <asm/arch/regs-serial.h> | 26 | #include <asm/arch/regs-serial.h> |
27 | #include <asm/arch/regs-gpio.h> | 27 | #include <asm/arch/regs-gpio.h> |
@@ -147,6 +147,7 @@ static struct s3c24xx_dma_order __initdata s3c2410_dma_order = { | |||
147 | 147 | ||
148 | static int s3c2410_dma_add(struct sys_device *sysdev) | 148 | static int s3c2410_dma_add(struct sys_device *sysdev) |
149 | { | 149 | { |
150 | s3c2410_dma_init(); | ||
150 | s3c24xx_dma_order_set(&s3c2410_dma_order); | 151 | s3c24xx_dma_order_set(&s3c2410_dma_order); |
151 | return s3c24xx_dma_init_map(&s3c2410_dma_sel); | 152 | return s3c24xx_dma_init_map(&s3c2410_dma_sel); |
152 | } | 153 | } |
@@ -156,12 +157,12 @@ static struct sysdev_driver s3c2410_dma_driver = { | |||
156 | .add = s3c2410_dma_add, | 157 | .add = s3c2410_dma_add, |
157 | }; | 158 | }; |
158 | 159 | ||
159 | static int __init s3c2410_dma_init(void) | 160 | static int __init s3c2410_dma_drvinit(void) |
160 | { | 161 | { |
161 | return sysdev_driver_register(&s3c2410_sysclass, &s3c2410_dma_driver); | 162 | return sysdev_driver_register(&s3c2410_sysclass, &s3c2410_dma_driver); |
162 | } | 163 | } |
163 | 164 | ||
164 | arch_initcall(s3c2410_dma_init); | 165 | arch_initcall(s3c2410_dma_drvinit); |
165 | #endif | 166 | #endif |
166 | 167 | ||
167 | #if defined(CONFIG_CPU_S3C2442) | 168 | #if defined(CONFIG_CPU_S3C2442) |
@@ -170,11 +171,11 @@ static struct sysdev_driver s3c2442_dma_driver = { | |||
170 | .add = s3c2410_dma_add, | 171 | .add = s3c2410_dma_add, |
171 | }; | 172 | }; |
172 | 173 | ||
173 | static int __init s3c2442_dma_init(void) | 174 | static int __init s3c2442_dma_drvinit(void) |
174 | { | 175 | { |
175 | return sysdev_driver_register(&s3c2442_sysclass, &s3c2442_dma_driver); | 176 | return sysdev_driver_register(&s3c2442_sysclass, &s3c2442_dma_driver); |
176 | } | 177 | } |
177 | 178 | ||
178 | arch_initcall(s3c2442_dma_init); | 179 | arch_initcall(s3c2442_dma_drvinit); |
179 | #endif | 180 | #endif |
180 | 181 | ||