Linux 3.0.1中缺少DMA 内存到内存的操作方式,本文提供了添加改特性的方法。
打开文件添加宏定义,用于新传输方式的支持。
linux-3.0.1/arch/arm/plat-samsung/include/plat/dma.h

enum s3c2410_dmasrc {
S3C2410_DMASRC_HW, /* source is memory */
S3C2410_DMASRC_MEM, /* source is hardware */
S3C2410_DMASRC_MEM2MEM /* memory to memory */
};
在文件dma.c中添加内存到内存的配置,修改函数s3c2410_dma_devconfig如下:
linux-3.0.1/arch/arm/mach-s3c64xx/dma.c

switch (source) {
case S3C2410_DMASRC_HW:
config = 2 << PL080_CONFIG_FLOW_CONTROL_SHIFT;
config |= peripheral << PL080_CONFIG_SRC_SEL_SHIFT;
break;
case S3C2410_DMASRC_MEM:
config = 1 << PL080_CONFIG_FLOW_CONTROL_SHIFT;
&


372

被折叠的 条评论
为什么被折叠?



