aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-s3c2410/dma.c
diff options
context:
space:
mode:
authorBen Dooks <ben-linux@fluff.org>2007-02-17 09:37:14 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2007-02-17 10:00:34 -0500
commit48adbcf33b6087727a2db0b517c994a7ecfbeb0c (patch)
tree55ad8f006bfedbf5b2ec5b72bc1ede7f2c3383da /arch/arm/mach-s3c2410/dma.c
parent15e4db7b8054ac171de946b9511655446dd29b8f (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.c11
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
148static int s3c2410_dma_add(struct sys_device *sysdev) 148static 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
159static int __init s3c2410_dma_init(void) 160static 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
164arch_initcall(s3c2410_dma_init); 165arch_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
173static int __init s3c2442_dma_init(void) 174static 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
178arch_initcall(s3c2442_dma_init); 179arch_initcall(s3c2442_dma_drvinit);
179#endif 180#endif
180 181