diff options
author | Ben Dooks <ben-linux@fluff.org> | 2009-09-22 17:48:56 +0200 |
---|---|---|
committer | Ben Dooks <ben-linux@fluff.org> | 2009-10-28 19:22:57 +0100 |
commit | e3d8024891dbfec6cf36c9b76177650f48118462 (patch) | |
tree | 2046fa2ec4259e32b02ef29107fa6ace142e8f8f /arch | |
parent | Merge git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux-2.6-for-linus (diff) | |
download | linux-e3d8024891dbfec6cf36c9b76177650f48118462.tar.xz linux-e3d8024891dbfec6cf36c9b76177650f48118462.zip |
ARM: S3C: Add info for supporting circular DMA buffers
The S3C64XX DMA implementation will work a lot better with the ability
to enqueue circular buffers as the hardware can do it's own linked-list
management.
Add a function s3c_dma_has_circular() to show that the system can do this
and a flag for the channel.
Update the s3c24xx/s3c64xx I2S DMA code to deal with this.
Signed-off-by: Ben Dooks <ben@simtec.co.uk>
Signed-off-by: Ben Dooks <ben-linux@fluff.org>
Acked-by: Mark Brown <broonie@@opensource.wolfsonmicro.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/arm/mach-s3c2410/include/mach/dma.h | 7 | ||||
-rw-r--r-- | arch/arm/mach-s3c6400/include/mach/dma.h | 5 |
2 files changed, 12 insertions, 0 deletions
diff --git a/arch/arm/mach-s3c2410/include/mach/dma.h b/arch/arm/mach-s3c2410/include/mach/dma.h index c3a2629e0ded..92e2687009ea 100644 --- a/arch/arm/mach-s3c2410/include/mach/dma.h +++ b/arch/arm/mach-s3c2410/include/mach/dma.h @@ -110,6 +110,8 @@ enum s3c2410_dma_loadst { * waiting for reloads */ #define S3C2410_DMAF_AUTOSTART (1<<1) /* auto-start if buffer queued */ +#define S3C2410_DMAF_CIRCULAR (1 << 2) /* no circular dma support */ + /* dma buffer */ struct s3c2410_dma_buf; @@ -194,4 +196,9 @@ struct s3c2410_dma_chan { typedef unsigned long dma_device_t; +static inline bool s3c_dma_has_circular(void) +{ + return false; +} + #endif /* __ASM_ARCH_DMA_H */ diff --git a/arch/arm/mach-s3c6400/include/mach/dma.h b/arch/arm/mach-s3c6400/include/mach/dma.h index 1067619f0ba0..004edab23954 100644 --- a/arch/arm/mach-s3c6400/include/mach/dma.h +++ b/arch/arm/mach-s3c6400/include/mach/dma.h @@ -68,6 +68,11 @@ static __inline__ int s3c_dma_has_circular(void) #define S3C2410_DMAF_CIRCULAR (1 << 0) +static inline bool s3c_dma_has_circular(void) +{ + return false; +} + #include <plat/dma.h> #endif /* __ASM_ARCH_IRQ_H */ |